Spring AI ChatClient详解:创建第一个AI客户端

本文是"Spring AI 智能体实战"系列第 4/30 篇。项目采用 Java 17、Spring Boot 3.4.3 和课程示例所使用的 Spring AI 版本。不同 Spring AI 版本的依赖名称和部分 API 可能存在差异,请以自己项目的版本为准。

前言

理解 ChatClient、ChatModel 和 Spring Bean 之间的关系,完成统一客户端配置。

本文将沿用同一个实战项目逐步完成相关功能。所有密钥均使用环境变量表示,复制代码后请在本地配置真实值,不要把 API Key 或数据库密码提交到代码仓库。

本文目标

  • 理解本节功能解决的实际问题。

  • 掌握关键配置、接口与代码结构。

  • 完成可验证的运行结果,为下一节功能做好准备。

ChatClient.java

ChatClient中封装了与AI大模型对话的各种API,同时支持同步式或响应式交互。

不过,在使用之前,首先我们需要声明一个ChatClient

com.gdcp.ai.config包下新建一个CommonConfiguration类:

完整代码如下:

java 复制代码
package com.gdcp.ai.config;

import org.springframework.ai.chat.client.ChatClient;
import org.springframework.ai.openai.OpenAiChatModel;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class CommonConfiguration {

    // 参数中的model就是使用的模型,这里用了OpenAIChatModel
    @Bean
    public ChatClient chatClient(OpenAiChatModel model){
        return ChatClient.builder(model)  //创建ChatClient工厂
                .build();  //构建ChatClient实例
    }

}

代码解读:

  • ChatClient.builder:会得到一个ChatClient.Builder工厂对象,利用它可以自由选择模型、添加各种自定义配置

  • OllamaChatModel:如果你引入了ollama的starter,这里就可以自动注入OllamaChatModel对象。同理,OpenAI也是一样的用法。

本文总结

通过配置类创建了可复用的 ChatClient,后续 Controller 和 Service 都可以直接注入使用。

建议在进入下一篇之前亲自运行本文代码,并记录请求参数、控制台日志和最终响应。遇到问题时,优先检查依赖版本、模型名称、环境变量和包名是否一致。

下一篇预告

下一篇:Spring AI同步调用实战:用一个接口完成AI问答

相关推荐
vHelios1 小时前
【电商项目】测试 授权功能 遇到的问题与解决方案
java·spring boot·sql
2401_894915532 小时前
GEO 定位优化源码搭建常见报错排查:数据库、伪静态、接口调试
java·数据库·网络协议·tcp/ip·spring·unity
bbq粉刷匠2 小时前
ArrayList 整体认识
java·jvm·数据结构
水无痕simon2 小时前
15 转账对接文档
java·区块链
西凉的悲伤2 小时前
Java 基于 MySQL 行锁实现高并发业务序列号生成器
java·mysql·springboot·序列号生成
lv__pf2 小时前
servlet与jsp
java·开发语言·servlet
xieliyu.2 小时前
Java 文件IO :File 文件类、字节流、字符流讲解
java·ide·笔记·javaee
云烟成雨TD2 小时前
Micrometer 系列【28】Spring Boot Actuator | 其他指标速览
java·spring boot·云原生
meilindehuzi_a2 小时前
深入理解 Linux 进程地址空间:从虚拟内存、页表映射到 fork 写时拷贝与 VMA 管理
java·linux·服务器