> 自媒体 > (AI)人工智能 > 4. ChatClient 的初始,快速使用上手
4. ChatClient 的初始,快速使用上手
来源:墨码行者
2025-10-01 12:09:36
224
管理
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
相关文章
众擎机器人一脚踹翻自家老板;苹果CEO库克被曝健康出问题;OpenAI或于明日..
国内要闻众擎机器人一脚踹翻自家老板,创始人称不戴护具对会骨折近日,众..
人形机器人何时迎来“ChatGPT时刻”?
昨天是博鳌亚洲论坛2026年年会的第二天,不同话题的讨论渐入佳境。当天的..
全球首个“动作泛化”大模型发布,机器人的“ChatGPT时刻”来了..
以前我们看机器人,总觉得它们像“智障”:换个环境就死机,换个物体就抓..
BEYOND Expo2026观察:具身智能的“ChatGPT时刻”还没到,机器人公司在争什..
本报(chinatimes.net.cn)记者胡梦然 澳门摄影报道第六届BEYOND国际科技..
一个GPT Plus会员的钱,够机器人跑一个月世界模型了
henry 发自 凹非寺量子位 | 公众号 QbitAI真没想到啊!物理AI的账单,有..
宇树科技王兴兴:人形机器人今年年中跑赢人类,具身智能“ChatGPT时刻”还..
财联社3月18日讯(记者 郭松峤)“再过几个月,到今年年中的时候,全球尤..
ChatGPT史上最大升级:从聊天机器人到AI超级应用,工作要变了..
**摘要:**OpenAI正在策划ChatGPT上线以来最大幅度的升级——从一个回答..
ChatGPT迎来史诗级大改版!从聊天机器人蜕变为超级智能体..
自ChatGPT横空出世,全球人工智能赛道便被彻底点燃,人机交互的新时代就..
曝苹果或推全能聊天机器人:Siri的“ChatGPT时刻”将至..
【CNMO科技消息】近日,根据外媒最新消息,苹果计划在今年秋季,随新一代..
关于作者
快乐的老范..(普通会员)
文章
2062
关注
0
粉丝
0
点击领取今天的签到奖励!
签到排行

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

0
0
分享
请选择要切换的马甲:

个人中心

每日签到

我的消息

内容搜索