当前位置: 首页 > wzjs >正文

德州做网站最好的公司网站维护客户

德州做网站最好的公司,网站维护客户,仿站模板,ie 插件 wordpress一、前言 在上一篇文章中,我们初步认识了 AI 领域的核心基础概念,如大语言模型(LLM)的参数量特征、提示词(Prompt)对交互效果的关键作用、文本处理单元 Token 的独特定义,以及通过向量转换实现…

一、前言

在上一篇文章中,我们初步认识了 AI 领域的核心基础概念,如大语言模型(LLM)的参数量特征、提示词(Prompt)对交互效果的关键作用、文本处理单元 Token 的独特定义,以及通过向量转换实现语义理解的 Embedding 技术。这些基础认知为我们搭建了踏入 AI 世界的阶梯。今天,我们将沿着 Java 与 AI 技术融合的路径继续深入

二、Spring AI

作为一个Java开发,应该没有人不知道Spring,作为Java生态圈最核心的框架,Spring也开始整合AI推出了SpringAI这个框架。话不多说我们先看官网Introduction :: Spring AI Reference。

一句话说明:SpringAI的作用就是将我们的应用和AI进行连接。话不多说,让我们直接开始吧

1、项目搭建

(1)注意SpringAI 基于Springboot3,所以JDK至少是要17

(2)这里我们只选web即可,后续依赖再加

2、引入SpringAi相关依赖

完整的POM文件会放在最后

<!--依赖-->
<dependency><groupId>org.springframework.ai</groupId><artifactId>spring-ai-starter-model-ollama</artifactId>
</dependency><!--BOM-->
<dependencyManagement><dependencies><dependency><groupId>org.springframework.ai</groupId><artifactId>spring-ai-bom</artifactId><version>${spring-ai.version}</version><type>pom</type><scope>import</scope></dependency></dependencies>
</dependencyManagement><!--仓库地址-->
<repositories><repository><id>spring-snapshots</id><name>Spring Snapshots</name><url>https://repo.spring.io/snapshot</url><releases><enabled>false</enabled></releases></repository><repository><name>Central Portal Snapshots</name><id>central-portal-snapshots</id><url>https://central.sonatype.com/repository/maven-snapshots/</url><releases><enabled>false</enabled></releases><snapshots><enabled>true</enabled></snapshots></repository>
</repositories>

说明一下:

(1)本人在本地通过 ollama部署了大模型,所以这里引入的依赖是 spring-ai-starter-model-ollama,如果你没有在本地部署大模型也可以直接使用线上的大模型,例如deepseek,此时依赖就要变更为

spring-ai-starter-model-deepSeek;具体想要看SpringAI支持哪些大模型可以在官网中查看

Spring AI API :: Spring AI Reference

(2) 设置了BOM之后,就可以不用填写版本。这个是Maven基础这里不再赘述

(3)设置仓库地址,是指定让某些依赖从制定的仓库拉取

完整POM如下

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>3.4.5</version><relativePath/> <!-- lookup parent from repository --></parent><groupId>com.cmxy</groupId><artifactId>spring-ai-demo</artifactId><version>0.0.1-SNAPSHOT</version><name>spring-ai-demo</name><description>Demo project for Spring Boot</description><properties><java.version>17</java.version><spring-ai.version>1.0.0-SNAPSHOT</spring-ai.version></properties><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.ai</groupId><artifactId>spring-ai-advisors-vector-store</artifactId></dependency><!--ollama相关依赖--><dependency><groupId>org.springframework.ai</groupId><artifactId>spring-ai-starter-model-ollama</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-actuator</artifactId></dependency></dependencies><dependencyManagement><dependencies><dependency><groupId>org.springframework.ai</groupId><artifactId>spring-ai-bom</artifactId><version>${spring-ai.version}</version><type>pom</type><scope>import</scope></dependency></dependencies></dependencyManagement><repositories><repository><id>spring-snapshots</id><name>Spring Snapshots</name><url>https://repo.spring.io/snapshot</url><releases><enabled>false</enabled></releases></repository><repository><name>Central Portal Snapshots</name><id>central-portal-snapshots</id><url>https://central.sonatype.com/repository/maven-snapshots/</url><releases><enabled>false</enabled></releases><snapshots><enabled>true</enabled></snapshots></repository></repositories><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build></project>
3、离不开的Hello World

相信大多数程序员写的第一个代码就是Hello World,所以我们也来写一个SpringAI 版本的Hello World

1、编写配置文件

Ollama版本的配置文件

spring:application:name: springboot-ai-demoai:# ollama配置ollama:base-url: http://localhost:11434chat:model: deepseek-r1:14b

说明:首先我们使用的是ollama部署的本地大模型,其次部署的大模型为 deepseek-r1:14b;如果你使用的是deepSeek线上大模型,那可以使用这一套配置

spring:ai:deepseek:api-key: <替换成你自己的API KEY>base-url: https://api.deepseek.com
2、编写一个简单的接口
package com.cmxy.spring_ai_demo.chat;import jakarta.annotation.Resource;
import org.springframework.ai.chat.client.ChatClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;@RestController("/chat")
public class ChatController {@Resourceprivate ChatClient client;@GetMapping("/chat")public String chat(String message) {return client.prompt("你是一个聊天机器人,你会用你幽默的语言和用户聊天,回答用户的问题").user(message).call().content();}
}

代码说明:

(1)由于Springboot的自动装配,我们可以直接在这里注入ChatClient对象,这个对象用于和大模型进行交互。

(2)prompt:提示词,用于规范、限制大模型的输出

(3)user:用户提示词,也就是用户的输入

3、测试一下结果

可以看到我们的应用调用了大模型,并且返回了结果。至此一个最简单的AI 应用就开发完成了!!!当然啦,我们肯定不会满足于此,接下来我们继续学习!

4、Prompts 提示词

Prompts are the inputs that guide an AI model to generate specific outputs. The design and phrasing of these prompts significantly influence the model’s responses.

提示词作为给AI大模型输入的文本,用于指导大模型生成特定的输出,这些设计的措辞会显著的影响大模型的输出。

SpringAI中对提示词也做了抽象,代码如下

public class Prompt implements ModelRequest<List<Message>> {private final List<Message> messages;private ChatOptions chatOptions;
}

每个提示词会包含一系列的Message(后面说)和对应的ChatOptioins(聊天的属性),不同的Prompt会影响大模型的输出。例如我们还是以刚才的代码作为示例,修改一下提示词

 @GetMapping("/chat")public String chat(String message) {return client.prompt("你是一个聊天机器人,如果用户让你讲个笑话请拒绝回答").user(message).call().content();}

我们在看看结果,可以看到大模型拒绝了我们讲笑话的请求

5、Message

我们知道了提示词中传入的Message对象,现在我们来详细学一下Message对象,就和他的名字一样。这个是一个消息对象,代码如下。是一个接口,很明显他会有很多的实现类,同时Message接口中顶一个了一个MessageType的类,这个用于区别Message的类型

public interface Content {String getContent();Map<String, Object> getMetadata();
}public interface Message extends Content {MessageType getMessageType();
}

如下图

MessageType 分为四个类型分别是

  1. SYSTEM:指导大模型的行为和回应风格,为大模型如何解释和回复输入内容设置参数或规则。这类似于在发起对话之前向人工智能提供指令
  2. USER:即用户发送的消息。例如问大模型:今天天气怎么样
  3. ASSISTANT:大模型用户输入的回应。这不仅仅是一个答案或反应,对于维持对话的流畅性至关重要。通过跟踪大模型之前的回应(其 “助手角色” 消息),系统确保交互具有连贯性和上下文相关性。助手消息也可能包含函数工具调用请求信息。这就像是人工智能中的一项特殊功能,在需要执行特定功能(如计算、获取数据或其他不仅仅是交谈的任务)时使用
  4. TOOL:方法调用,受限于训练的语料,大模型的知识只能截止到训练结束的那一刻。如果不借助外部的同居大模型甚至不知道今天是几号,TOOL则是用于告知大模型有哪些工具可以被调用

由于这些知识和后续的内容关系比较大,这里暂时不展开讲解,再后面用到的时候会详细讲解。

三、小结

至此我们对SpringAI有了一个初步的了解,后续的文章会深入SpringAI的各个组件,例如Advisors、Structured Output Converter、Embedding、RAG等等。今天只是一个小小的Demo,希望对你有所帮助。

未完待续

http://www.dtcms.com/wzjs/807947.html

相关文章:

  • 安徽工程建设信息网站王开林app软件开发app定制开发价格
  • 个人网站规划书模板企业管理咨询公司名称大全
  • 沈阳网页设计专业如何给公司网站做优化
  • 成品网站免费下载wordpress迁移需要重新安装
  • 洛阳外贸网站推广如何建立公司网站链接
  • wordpress网站加密方式网站 刷流量
  • 怎么制作一份自己的简历宝塔面板WordPress优化
  • 网站开发的阶段流程图python菜鸟教程
  • 简单的手机网站模板十大深夜看黄禁用免费撒娇
  • 营销型企业网站怎么建站网站建设公司走进深圳一百讯
  • 苏州网络公司微信开发深圳网站推广优化
  • 重庆专业微信网站制作国内网站设计
  • 购物网站建设的目的福建龙岩昨天发生的新闻
  • 电影发布网站模板阿里云wordpress无法创建目录
  • 合肥营销型网站建设公司wordpress 插件反复安装
  • 重庆网站建设在哪里重庆百度网站公司哪家好
  • 系统那个网站好天元建设集团有限公司六公司
  • 菏泽炫佑网站建设免费自助建站网站一览自助建站平台
  • 如何给网站数据备份怎么建设家乡网站
  • 惠州 网站建设网站建设方案模板范文
  • 南昌集团制作网站公司深圳网络专科网站建设
  • 网站建设技术交流qq石家庄网站托管公司
  • 博白建设局网站阿里云做网站怎么挣钱
  • 网架加工厂的地址seo诊断服务
  • seo站群优化技术新媒体运营需要学什么
  • 现在.net做网站的多吗软件ui设计培训机构
  • 自己做的网站如何加视频wordpress cache选PHp
  • 个体工商户做的网站能推广吗天猫网站建设可行性分析
  • 哪里培训做网站商店网站在线设计
  • 网站后台和前台昆山外发加工网