Spring Ai_ChatClient

Posted by ni on April 10, 2025
本文共792 字 | 大约需要2.64 分钟阅读

  • 前面使用ChatModel接口,自动注入Spring Ai的默认实现类,来与大模型交流
  • 但后续如果要实现添加默认角色,关键词调用方法,结合上下文等方法ChatModel实现不了
  • 需要使用ChatClient
  • 并且ChatClient可以使用多种大模型进行回答
  • 不在局限于在配置文件进行

开始

创建ChatClient

  • 在官方文档中,实现ChatClient直接使用ChatClient.builder(ChatModel chatModel)
  • 并且传入的ChatModel,是通过Spring自动注入的
  • 也就是说用的还是默认配置
  • 当我们查看ChatModel接口
  • 可以看到是有OpenAiChatModel实现类的
  • 并且有builder方法,需要提供一个OpenAiApi
  • 很显然我们可以在里面进行配置来实现动态配置
  • 如此可以通过数据库或者Redis来修改配置,或者使用多种大模型

使用ChatClient

  • 创建完ChatClient后开始使用
  • 首先查看官方文档

  • 很显然我们可以通过.user方法来传递用户问题
  • .call方法来规定回答方式与之前说的.call和.stream相同
  • 在.call后的方法很显然是规定返回的内容格式
  • 通过文档可以看到,如果通过.content可以直接返回文本内容不需要返回多余信息

系统默认角色

  • 我们还可以通过在创建Client的时候设置系统默认值

  • 官方文档在切换声音场景下使用了系统默认值并可以自动切换
  • 我们也可以直接在system方法里写默认值,或在创建时就添加固定默认值

测试

  • **chat方法: **我们在chat方法里设置了系统默认值,告诉他,他是一个架构师,让他来自我介绍一下

  • chatFlux方法: 我们没有设置系统默认值并且以流的形式直接返回内容