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.comchat:options:model:deepseek-chattemperature: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(); //文本内容}
