Spring AI 最新聊天api使用与旧版对比
随着人工智能技术的飞速发展,聊天机器人已经成为许多应用和服务中的关键组件。Spring AI作为一款广受欢迎的AI开发框架,在2024年5月22日,Spring AI官方对聊天客户端API进行了重构升级,由聊天完成API变为聊天模型API和聊天客户端API,相比与旧版有了较大的变化。本文将深入探讨Spring AI最新聊天API的使用方法,并与旧版API进行详细对比,帮助开发者更好地理解并应用这一新工具。
主要变化
-
细化聊天响应的类型方法调用
我们不使用自动装配的方案来对比新旧版本的使用,以至于更直观的感受到二者的区别。
在0.8.1版本之前的聊天接口使用是这样的:
OpenAiChatClient openAiChatClient = new OpenAiChatClient(new OpenAiApi(baseUrl, apiKey)); Flux<ChatResponse> stream = openAiChatClient.stream(prompt); // or ChatResponse chatResponse = openAiChatClient.call(prompt);
在最新的1.0.0-SNAPSHOT版本中,引入了新的StreamingChatModel和ChatModel接口,使得代码更加简洁和模块化。
流式返回:
StreamingChatModel chatModel = new OpenAiChatModel(new OpenAiApi(baseUrl, apiKey)); Flux<ChatResponse> stream = chatModel.stream(prompt);
非流式返回:
ChatModel chatModel = new OpenAiChatModel(new OpenAiApi(baseUrl, apiKey)); ChatResponse chatResponse = chatModel.call(prompt);
通过这些改进,最新版API不仅在功能和性能上得到了提升,而且在代码的可读性和易用性上也有了显著的改进。这使得开发者可以更方便地使用这些API来实现各种聊天功能。
-
新的客户端构建方式
新版Spring AI聊天API引入了
ChatClient.Builder
的客户端构建方式,使得构建和使用聊天客户端更加灵活和方便。首先,使用
ChatModel
和OpenAiChatModel
初始化API:ChatModel chatModel = new OpenAiChatModel(new OpenAiApi(baseUrl, apiKey)); ChatClient chatClient = ChatClient.create(chatModel); // or ChatClient.builder(chatModel).build()
然后,根据需要选择非流式或流式的返回方式:
非流式返回:
String content = chatClient.prompt(prompt).call().content(); List<String> contents = chatClient.prompt(prompt).call().contents(); ChatResponse chatResponse = chatClient.prompt(prompt).call().chatResponse();
流式返回:
Flux<String> stream = chatClient.prompt(prompt).stream().content(); Flux<ChatResponse> stream = chatClient.prompt(prompt).stream().chatResponse();
通过这种方式,开发者可以更灵活地选择适合自己需求的返回形式,使代码更简洁易读,并且提升了开发效率和代码的可维护性。
总结
通过对比Spring AI聊天API的新旧版本,我们可以清晰地看到新版API引入了更灵活的构建方式和更简洁的代码接口,使得开发者能够更加高效地开发和维护聊天应用。