> 自媒体 > (AI)人工智能 > 4. ChatClient 的初始,快速使用上手
4. ChatClient 的初始,快速使用上手
来源:墨码行者
2025-10-01 12:09:36
210
管理
C 4. ChatClient 的初始,快速使用上手

@[toc]

C ChatClient

ChatClient 基于 ChatModel 进行了封装提供了通用的 API,它适用所有的大模型,使用 ChatClient 可以让你面向 SpringAi 通用的 api 而无需面向为每一种不同的模型的 api(比如我们之前的什么 DashScopeChatModel,XXXModel,使用 ChatClient 就无效关心这里是那个大模型 ModelL )来进行编程,虽然您仍然可以使用 ChatModel 来实现某些模型更加个性化的操作(ChatModel 更偏向于底层),但 ChatClient 提供了灵活、更全面的方法来构建您的客户端选项以与模型进行交互:比如系统提示词、格式式化响应、聊天记忆 、tools 都更加易用和优雅,所以除非 ChatClient 无法实现,否则我们 优先考虑用 ChatClient 。

所以我们后续基于 ChatClient 来进行学习应用。基于 ChatModel 来学习源码,因为 ChatClient 底层依然还是 ChatModel 的封装。 #技术分享

基本使用必须通过ChatClient.Builder 来进行构造

@SpringBootTestpublic class ChatClientTest { @Test public void testChatClient(@Autowired ChatClient.Builder builder) {ChatClient chatClient = builder.build(); String content = chatClient.prompt() .user("Hello") .call() .content(); System.out.println(content); } }

这种方式会在底层自动注入1个 ChatModel ,如果你配置了多个模型依赖,会无法注入。

可以通过这种方式动态选择 ChatModel:

@SpringBootTestpublic class ChatClientTest {@Test public void testChatOptions(@Autowired DeepSeekChatModel chatModel) {ChatClient chatClient = ChatClient.builder(chatModel).build(); String content = chatClient.prompt() .user("Hello") .call() .content(); System.out.println(content); } }流式

@Test public void testChatStream() { Flux content = chatClient.prompt() .user("Hello") .stream() .content();content.toIterable().forEach(System.out::println); }C ChatClient 《多个模型动态切管理实战》

1)application.properties

# DeepSeek 配置spring.ai.deepseek.chat.api-key=你的 APIKey spring.ai.deepseek.chat.options.model=deepseek-chat# Ollama 配置,模型暂定qwen3:4b已拉取到本地spring.ai.ollama.chat.base-url=http://localhost:11434 spring.ai.ollama.chat.options.model=qwen3:4b

org.springframework.aispring-ai-starter-model-deepseekorg.springframework.aispring-ai-starter-model-ollama

定义3个 ChatClient 的 bean。也可以根据请求动态创建,看需求

@Configurationpublic class AiConfig {@Bean public ChatClient deepseekR1(DeepSeekChatProperties chatProperties) {DeepSeekApi deepSeekApi = DeepSeekApi.builder() .apiKey(System.getenv("DEEP_SEEK_KEY")) .build();DeepSeekChatModel deepSeekChatModel = DeepSeekChatModel.builder() .deepSeekApi(deepSeekApi) .defaultOptions(DeepSeekChatOptions.builder().model(DeepSeekApi.ChatModel.DEEPSEEK_REASONER).build()) .build();return ChatClient.builder(deepSeekChatModel).build(); }@Bean public ChatClient deepseekV3() {DeepSeekApi deepSeekApi = DeepSeekApi.builder() .apiKey(System.getenv("DEEP_SEEK_KEY")) .build();DeepSeekChatModel deepSeekChatModel = DeepSeekChatModel.builder() .deepSeekApi(deepSeekApi) .defaultOptions( DeepSeekChatOptions.builder() .model(DeepSeekApi.ChatModel.DEEPSEEK_CHAT) .build() ) .build();return ChatClient.builder(deepSeekChatModel).build(); }@Bean public ChatClient ollama(@Autowired OllamaApi ollamaApi, @Autowired OllamaChatProperties options) { OllamaChatModel ollamaChatModel = OllamaChatModel.builder() .ollamaApi(ollamaApi) .defaultOptions(OllamaOptions.builder().model(options.getModel()).build()) .build();return ChatClient.builder(ollamaChatModel).build(); }}

请求:

@RestControllerpublic class MultiModelsController {@Autowired private Map chatClientMap;@GetMapping("/chat") String generation(@RequestParam String message, @RequestParam String model) { ChatClient chatClient = chatClientMap.get(model); String content = chatClient.prompt().user(message).call().content(); return content; } }最后:

“在这个最后的篇章中,我要表达我对每一位读者的感激之情。你们的关注和回复是我创作的动力源泉,我从你们身上吸取了无尽的灵感与勇气。我会将你们的鼓励留在心底,继续在其他的领域奋斗。感谢你们,我们总会在某个时刻再次相遇。”

0
点赞
赏礼
赏钱
0
收藏
免责声明:本文仅代表作者个人观点,与本站无关。其原创性以及文中陈述文字和内容未经本网证实,对本文以及其中全部或者 部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。 凡本网注明 “来源:XXX(非本站)”的作品,均转载自其它媒体,转载目的在于传递更多信息,并不代表本网赞同其观点和对 其真实性负责。 如因作品内容、版权和其它问题需要同本网联系的,请在一周内进行,以便我们及时处理。 QQ:617470285 邮箱:617470285@qq.com
相关文章
三菱退出中国?官方回应:将与现有伙伴继续合作
6月23日,有媒体报道称,三菱汽车将逐步取消包括欧洲、中国在内的市场业..
2026款三菱帕杰罗曝光,第二代超选四驱+2.4T/2.0T双动力..
硬派越野圈的“老将”居然换小排量了?2026款三菱帕杰罗刚露出消息,就把..
恩智浦计划退出5G功率放大器业务;三星或将退出SATA SSD市场;三菱化学出售..
五分钟了解产业大事每日头条芯闻 恩智浦计划退出5G功率放大器业务我国首..
实拍三菱全新欧蓝德!搭1.5T四缸,内饰配大屏,不比奇骏香?..
在重庆车展上,全新一代三菱欧蓝德终于在国内亮相了,相比其国外的发布时..
试驾广汽三菱奕歌:小巧灵动
■ 阅车试驾车型:广汽三菱奕歌长/宽/高(mm):4405/1805/1685轴距(mm..
新车 | 四驱越野MPV/配侧滑门/2.2T柴油机,新款三菱Delica D:5亮相..
文:懂车帝原创 高帅鹏[懂车帝原创 产品] 日前,2025东京车展开幕,新款..
三菱集团的传奇发家史
“三菱”两个字,在日本就像一把瑞士军刀:银行、飞机、汽车、火箭、寿司..
2026款三菱Montero曝光,S-AWC四驱+差速锁全配,普拉多见了..
当 “普拉多见了都得慌” 的话题在越野圈炸锅,2026 款三菱 Montero 的曝..
日韩巨擘数据,三星2.1万亿三菱21万亿,中国第一谁?..
图片来源于网络2025年,让人火大的资本较量又来一波。韩国三星手里握着2...
关于作者
快乐的老范..(普通会员)
文章
1657
关注
0
粉丝
0
点击领取今天的签到奖励!
签到排行

成员 网址收录40418 企业收录2986 印章生成263572 电子证书1157 电子名片68 自媒体91237

@2022 All Rights Reserved 浙ICP备19035174号-7
0
0
分享
请选择要切换的马甲:

个人中心

每日签到

我的消息

内容搜索