Spring AI中ChatClient的聊天模型
这些消息通常包含占位符,这些占位符在运行时根据用户输入进行替换,以定制 AI 模型对用户输入的响应。存在一些可以指定的提示选项,例如要使用的 AI 模型名称和温度设置,该设置控制生成输出的随机性或创造性。流畅 API 提供了构建作为 AI 模型输入的提示组成部分的方法。Spring Boot自动配置获取一个自动配置的 ChatClient.Builder 实例或程序化创建一个。AI 模型处理两种主
·
unsetunsetChatClient介绍unsetunset
ChatClient 提供了一个流畅的 API,用于与 AI 模型进行通信。它支持同步和流式编程模型。
-
流畅 API 提供了构建作为 AI 模型输入的提示组成部分的方法。 Prompt 包含指导 AI 模型输出和行为的说明性文本。从 API 的角度来看,提示由一系列消息组成。
-
AI 模型处理两种主要类型的消息:用户消息,即用户直接输入的信息,和系统消息,即系统生成以引导对话的信息。
-
这些消息通常包含占位符,这些占位符在运行时根据用户输入进行替换,以定制 AI 模型对用户输入的响应。存在一些可以指定的提示选项,例如要使用的 AI 模型名称和温度设置,该设置控制生成输出的随机性或创造性。
unsetunset创建ChatClentunsetunset
创建有两种方式:
ChatClient.Builder 对象创建
Spring Boot自动配置获取一个自动配置的 ChatClient.Builder 实例或程序化创建一个。
引入opernai依赖
<dependency>
<groupId>org.springframework.ai</groupId>
<artifactId>spring-ai-openai-spring-boot-starter</artifactId>
</dependency>
deepseek api开发平台注册key
注册地址:https://platform.deepseek.com/api_keys
配置key:
Spring:
Application:
name:spring-ai-app
ai:
openai:
api-key:sk-********************
base-url:https://api.deepseek.com
chat:
options:
model:deepseek-chat
temperature:0.8
controller
@RestController
publicclass ChatClientController {
//Springboot 使用构造器注入
privatefinal ChatClient chatClient;
public ChatClientController(ChatClient.Builder chatClientBuilder) {
this.chatClient = chatClientBuilder.build();
}
@PostMapping("/chat")
public R chat(@RequestBody ChatRequest chatRequest) {
String response = chatClient
.prompt() //提示词
.user(chatRequest.getMessage()) //用户输入
.call(). //调用
content(); //文本内容
return R.ok("200","成功",response);
}
}
测试
和本地部署的8b的模型输出差距可真大
流式输出
Flux类输出指定泛型数据类型,将调用的call方法换为stream()即可。
@GetMapping(value = "/fluxChat",produces = "text/html;charset=UTF-8")
public Flux<String> fluxChat(@RequestParam("msg")String msg) {
return chatClient
.prompt() //提示词
.user(msg) //用户输入
.stream().
content(); //文本内容
}
更多推荐


所有评论(0)