大家好,我是小米,一个热衷技术分享的 31 岁程序员。前几天,我在项目中要接入 AI 聊天能力,本来准备硬撸 API 的,结果朋友一句话点醒我:
“用 Spring AI 啊,又干净又舒服!”
我一听眼睛一亮,马上开干!而这一次,我选的是 Anthropic Claude 3 模型——据说语言理解力和安全性都非常优秀。
于是,我就用 Spring AI 搭了一套 Claude 聊天系统,不仅能聊天,还能识图、读 PDF、函数调用,关键是还 配置灵活、自动注入,开发体验爆棚!
这篇文章,我就来详细分享我的实战流程,希望你也能轻松上手 Claude 3!
前提条件
在开始之前,你得准备几个必要的“法宝”:
- JDK 17+
- Maven or Gradle 项目
- Spring Boot 3.2+
- 一个有效的 Anthropic API Key(注册官网拿 key)
- 一个 Claude 3 的可用模型(Opus、Sonnet、Haiku)
我用的是 Spring Boot 3.3 和 Maven。
添加仓库和 BOM
先在你的 pom.xml 里添加 Spring AI 的 Maven 仓库和依赖:
自动配置真香
Spring AI 做得非常棒的一点是 自动配置完善,你只需要把 application.yml 配好,Bean 都自动注入好了,Claude 能用得飞起。
聊天属性配置
1. 重试属性
在企业应用里,稳定比啥都重要。Spring AI 支持你配置重试机制:
意思是最多重试 3 次,每次间隔成倍增加。
2. 连接属性
连接超时、读取超时都可以配置:
放心,Claude 有点慢是正常的,给它点时间思考人生~
3. 配置属性
基础配置是最核心的,尤其是 API Key 和默认模型:
运行时选项:PromptTemplate
Spring AI 提供了非常方便的 PromptTemplate 功能,你可以将变量、上下文内容动态拼接,代码示例如下:
是不是比自己拼字符串舒服多了?你只管关注“我想问什么”,其他都交给 PromptTemplate!
工具/函数调用 Function Calling
你没听错,Claude 3 也支持函数调用!Spring AI 已经封装好了方式,你只需要:
- 定义 Java 函数
- 注入 FunctionCallback
- 交给 ChatClient 处理
Claude 会自己选择调用函数,配合 ToolSystemPrompt,能做出很智能的多轮对话。
多模态能力
Claude 3 的一个重大突破就是支持多模态!在 Spring AI 中,图像和 PDF 都可以搞定。
1. 图像识别
用 ImagePrompt 构造请求,把 Base64 图片传进去,Claude 就能识图回答了:
是不是可以做智能图文分析?商品识别?美食分类?你说了算!
2. PDF 阅读
Spring AI 支持用 PdfDocumentReader 把 PDF 文件内容读取成 Prompt 内容发给 Claude:
连发票、合同、论文都能丢给 AI,帮你总结、校对、提问,一站式服务!
示例控制器
给大家展示个 ChatController,实战演示:
是不是非常优雅?发个 JSON 消息就能开始对话啦!
手动配置 ChatClient
如果你不想用 Spring Boot 自动装配,可以手动 new:
控制权更强,也便于自定义 Token 限制、日志打印等。
低级 AnthropicApi 客户端
如果你是个底层爱好者(比如我),想完全控制请求参数和响应解析,可以直接使用 AnthropicApi:
你甚至可以替换 HTTP 客户端、监控流量、接入监控链路。
写在最后
Spring AI 把 Claude 3 接入做得真的是又优雅又强大。从基础聊天,到函数调用、多模态,再到手动控制,你想怎么玩就怎么玩。
作为一个开发者,真的特别推荐你试试这套组合:Claude 3 + Spring AI。你会发现,AI 接入不再是遥不可及的黑科技,而是能上生产的业务能力。
好了,今天的分享就到这啦~
如果你对 Claude 3 聊天有什么想法,或者在接入 Spring AI 时遇到啥坑,欢迎留言,我们一起交流!
END
如果你喜欢这样的内容,记得 【点赞】+【关注】+【分享】 ,小米会持续更新更多有趣实用的技术干货!
我们下篇再见,拜拜~
我是小米,一个喜欢分享技术的31岁程序员。如果你喜欢我的文章,欢迎关注我的微信公众号“软件求生”,获取更多技术干货!