Spring AI 1.0版本 + 千问大模型之文本对话
最近学习了一下最近比较火的Spring AI 项目,作为一个Java coder,Spring生态是最熟悉不过的内容。下面我将通过项目的形式来感受一下Spring AI,这里只是简单的使用实例,不涉及代码深层次的探究。
1、项目准备
我是使用了Idea中 的Spring脚手架构建了Springboot项目。我使用的是Springboot 3.4.7版本。下面是我的pom.xml引入
<properties><java.version>17</java.version><spring-ai.version>1.0.0</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-starter-model-openai</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>
application.yaml配置
spring:ai:openai:base-url: https://dashscope.aliyuncs.com/compatible-mode/api-key: ## 我这里是使用了百炼平台,需要去申请api-keychat:options:model: qwen-plus## 这里是输出模型请求和返回的日志,后面的文章,会继续讲解到
logging:level:org.springframework.ai.chat.client.advisor: debugcom.spring: debug
ChatConfig类
用于初始化我们的ChatClient。
@Component
public class ChatConfig {@Beanpublic ChatClient init(OpenAiChatModel chatModel) {return ChatClient.builder(chatModel).defaultSystem("你是一个智能助手,请以友好的语气回答问题。").defaultAdvisors(new SimpleLoggerAdvisor()).build();}
}
1、由于千问模型和OpenAi的结构一样,这里我们使用 OpenAiChatModel 和千问模型实现对话
2、defaultSystem 这里是配置了system默认的提示词文本,用于应用回复对话的提示词
3、defaultAdvisors,这里是注册Advisor的,Spring AI框架提供了很多Advisor,后面的文章我们会详细来介绍的。
ChatController 代码
@RestController
@RequestMapping(value = "/api/chat")
public class ChatController {@Resourceprivate ChatClient chatClient;@GetMapping("/chat")public String chat(@RequestParam(value = "message")String message) {return chatClient.prompt(message).call().content();}
}
下面就是测试对话
到此Spring AI 1.0版本 + 千问大模型 文本对话就完成了。如果有什么疑问,可以留言交流。