Spring AI(聊天程序)
接上篇:Spring AI(基础开发准备)
1、聊天程序(调用一次接口)

/** * 聊天程序 * @author ithailin */ @RestController @RequestMapping("/ai") public class ChatController { private static final Logger logger = LoggerFactory.getLogger(ChatController.class); /** * spring-ai 自动装配的,可以注入使用 */ @Autowired private OpenAiChatModel openAiChatModel; /** * 调用openai的接口 * default String call(String message){} * @param msg:我们提问的消息 * @return */ @RequestMapping("/chat") public String chat(String msg){ logger.info("msg:{}",msg ); String called = openAiChatModel.call(msg); return called; } /** * 调用openai的接口 * public ChatResponse call(Prompt prompt){} * @param msg:我们提问的消息 * @return */ @RequestMapping("/chat2") public Object chat2(String msg){ logger.info("msg:{}",msg ); ChatResponse chatResponse = openAiChatModel.call(new Prompt(msg)); return chatResponse; } /** * 调用openai的接口 * public ChatResponse call(Prompt prompt){} * @param msg:我们提问的消息 * @return */ @RequestMapping("/chat3") public Object chat3(String msg){ logger.info("msg:{}",msg ); OpenAiChatOptions openAiChatOptions = OpenAiChatOptions.builder() //chatGpt模型版本,32k是参数量,若当前代码中和application配置文件中同时声明,则代码中的配置会覆盖application配置文件中的 .withModel("gpt-4-32k") //温度越高,回答的准确率会下降,温度越低,回答的准确率越好,若当前代码中和application配置文件中同时声明,则代码中的配置会覆盖application配置文件中的 .withTemperature(0.4F) .build(); Prompt prompt = new Prompt(msg, openAiChatOptions); ChatResponse chatResponse = openAiChatModel.call(prompt); return chatResponse; } /** * 调用openai的接口 * public Flux<ChatResponse> stream(Prompt prompt){} * @param msg:我们提问的消息 * @return */ @RequestMapping("/chat4") public Object chat4(String msg){ logger.info("msg:{}",msg ); OpenAiChatOptions openAiChatOptions = OpenAiChatOptions.builder() .withModel("gpt-4-32k") .withTemperature(0.4F) .build(); Prompt prompt = new Prompt(msg, openAiChatOptions); Flux<ChatResponse> flux = openAiChatModel.stream(prompt); flux.toStream().forEach(chatResponse -> { System.out.print(chatResponse.getResult().getOutput().getContent()); }); return flux.collectList();//数据的序列,一序列数据,一个一个的数据返回 } }
获取GPT默认版本
chatGpt模型版本、温度等相关参数配置,当前配置可在配置文件application.yml中进行设置,若当前代码中和application配置文件中同时声明,则代码中的配置会覆盖application配置文件中的
application.yml新增配置
chat: options: # chatGpt模型版本,32k是参数量,若当前代码中和application配置文件中同时声明,则代码中的配置会覆盖application配置文件中的 # model: gpt-4-32k # 温度越高,回答的准确率会下降,温度越低,回答的准确率越好,若当前代码中和application配置文件中同时声明,则代码中的配置会覆盖application配置文件中的 temperature: 0.3F
application.yml文件如下

spring: application: name: spring-ai ai: openai: # 访问open ai接口的api key api-key: sk-3sfER03LDLG3SDFsdlwe283JSdw023lkrmrHDND32fmREKFD # 访问open ai的接口地址 base-url: https://openai.com/ # ai聊天设置 chat: options: # chatGpt模型版本,32k是参数量,若当前代码中和application配置文件中同时声明,则代码中的配置会覆盖application配置文件中的 model: gpt-4-32k # 温度越高,回答的准确率会下降,温度越低,回答的准确率越好,若当前代码中和application配置文件中同时声明,则代码中的配置会覆盖application配置文件中的 temperature: 0.3F
接下篇:Spring AI(绘图)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?