> 自媒体 > (AI)人工智能 > 4. ChatClient 的初始,快速使用上手
4. ChatClient 的初始,快速使用上手
来源:墨码行者
2025-10-01 12:09:36
223
管理
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
相关文章
广汽丰田威兰达AIR版对比解析:为什么说现在入手正当时?..
#威兰达AIR权益价13.78万#当下的汽车市场,新车层出不穷,价格战此起彼伏..
丰田章男把社长位子交给佐藤恒治才两年,现又紧急换上CFO近健太..
这显然不是一次正常的人事轮替,而是一次危机下的紧急迫降。第一,止血与..
全新汉兰达成了纯电动车?不带发动机的丰田真的有人买吗?..
曾经日系车的换代周期都是比较长的,甚至改款的时间都很长,因此无论是保..
新车 | 售16.98万元起/2月24日公布新权益 全新丰田威兰达入门版官图..
文:懂车帝原创 张晓丹[懂车帝原创 产品] 日前,广汽丰田公布了新一代威..
月供一千多开走丰田SUV?威兰达AIR版这次把“家用”玩明白了..
#威兰达AIR权益价13.78万#月供一千多开走丰田SUV?威兰达AIR版这次把“家..
价格再下探,权益价13.78万元起,全新丰田威兰达AIR版上市..
再来简单回顾一下新车外观,全新威兰达AIR版采用最新的电感外观设计,加..
2026款丰田雅力士发布:升级10.5英寸大屏,保留燃油手动挡..
【网通社快报】丰田近日在日本发布2026款雅力士及雅力士Cross,新车将于3..
丰田陆放到底值不值得买?跑了5000公里,车主只说了大实话..
大家好,我是宇哥。最近很多粉丝问我:预算30万左右,想买一台靠谱的7座..
搭载新一代插混技术,丰田RAV4 PHEV海外发布,售价26.7万..
2026年2月19日,丰田在日本市场正式发布了全新第六代RAV4的PHEV版本,并..
关于作者
快乐的老范..(普通会员)
文章
2059
关注
0
粉丝
0
点击领取今天的签到奖励!
签到排行

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

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

个人中心

每日签到

我的消息

内容搜索