Spring AI 迭代了那么久,这次 1.0.0 终于正式发布。第一个正式版本,超多内容,每个Java开发者都必须了解一下!
Spring AI 1.0.0 更新内容
核心功能包括支持20个AI模型的ChatClient
接口、适配20个向量数据库的检索模块、支持滑动窗口和向量搜索的对话记忆功能、基于@Tool
注解的工具调用机制,以及模型评估、可观测性和Model Context Protocol(MCP)支持。此外,新增RAG流水线、ETL框架、工作流驱动和自主代理功能,并提供与微软 Azure、AWS、Google Cloud等云服务商的集成案例。
#1. ChatClient核心接口
- 作为与AI模型交互的主要接口,支持20个AI模型(如Anthropic、ZhiPu、DeepSeek、MiniMax等),涵盖多模态输入输出(若模型支持)和JSON格式结构化响应。
- 各支持模型的横向特性对比如下:
供应商 | 多模态支持 | 工具/功能支持 | 流式传输支持 | 重试支持 | 可观测性支持 | 内置JSON支持 | 本地化支持 | 兼容OpenAI API |
---|---|---|---|---|---|---|---|---|
Anthropic Claude | 文本、PDF、图像 | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ |
Azure OpenAI | 文本、图像 | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ |
DeepSeek (OpenAI代理) | 文本 | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
Google VertexAI Gemini | 文本、PDF、图像、音频、视频 | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ |
Groq (OpenAI代理) | 文本、图像 | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | ✅ |
HuggingFace | 文本 | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
Mistral AI | 文本、图像 | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ |
MiniMax | 文本 | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | (未明确) |
Moonshot AI | 文本 | ❌ | ✅ | ✅ | ✅ | ❌ | ❌ | (未明确) |
NVIDIA (OpenAI代理) | 文本、图像 | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | ✅ |
OCI GenAI/Cohere | 文本 | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ |
Ollama | 文本、图像 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
OpenAI | 输入:文本、图像、音频 输出:文本、音频 | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ |
Perplexity (OpenAI代理) | 文本 | ❌ | ✅ | ✅ | ✅ | ❌ | ❌ | ✅ |
QianFan | 文本 | ❌ | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ |
ZhiPu AI | 文本 | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ |
Amazon Bedrock Converse | 文本、图像、视频、文档(PDF、HTML、MD、DOCX等) | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ |
#2. 检索增强生成(RAG)与向量数据库
- 向量存储抽象:适配20个向量数据库(如 Azure Cosmos DB、Weaviate),支持SQL-like过滤语言及原生查询回退。
- ETL框架:通过可插拔
DocumentReader
支持本地文件、网页、GitHub、云存储(AWS S3、Azure Blob等)及数据库输入,内置分块、元数据 enrichment 和嵌入生成。 - RAG流水线:基础
QuestionAnswerAdvisor
和模块化RetrievalAugmentationAdvisor
,参考案例Retrieval Augmented Generation (R.A.G.) with Vector Storesopen in new window
#3. 对话记忆(ChatMemory)
- 基础实现:
MessageWindowChatMemory
通过滑动窗口存储最近N条消息,支持JDBC、Cassandra、Neo4j等持久化存储。 - 高级功能:
VectorStoreChatMemoryAdvisor
基于向量搜索检索语义相似历史消息,参考案例《Guide to chat memory implementation》open in new window。
#4. 工具调用(Function Calling)
- 通过
@Tool
注解声明工具方法,支持动态注册Bean或编程式创建,可调用天气查询、数据库操作等外部功能,配套《Guide to local tool calling》open in new window。
@Component
class DogAdoptionScheduler {
@Tool(description = "schedule an appointment to pickup or adopt a " +
"dog from a Pooch Palace location")
String schedule(int dogId, String dogName) {
System.out.println("Scheduling adoption for dog " + dogName);
return Instant
.now()
.plus(3, ChronoUnit.DAYS)
.toString();
}
}
#5. 模型评估与可观测性
- 评估组件:
RelevancyEvaluator
验证响应相关性,FactCheckingEvaluator
基于上下文校验事实准确性,引用Hugging Face专家指出“LLM作为裁判”的局限性(如模式崩溃、冗长偏见)。 - 可观测性:集成Micrometer追踪模型延迟、Token使用、工具调用等指标,支持日志记录和Micrometer Tracing。
#6. 模型上下文协议(MCP)
- 客户端:通过
spring-ai-starter-mcp-client
快速连接MCP服务器,支持stdio和HTTP-SSE端点,示例连接Brave搜索引擎。 - 服务器:使用
spring-ai-starter-mcp-server
和@Tool
注解构建MCP服务器,集成Spring Batch/Cloud Config提供企业级工具,支持OAuth安全认证。
#7. 代理支持
- 工作流驱动代理:包含评估优化(自评估响应)、路由(智能分配请求)、编排(动态任务分解)、链式(分步处理)、并行化(批量调用聚合结果)等模式。
- 自主代理:通过MCP动态发现工具,维护执行记忆,支持递归策略优化,孵化项目Spring MCP Agent演示相关能力。
Spring AI 1.0.0 中文文档
正好也是把一直计划搞的中文文档也可以稳定下来了,抽了半天时间整理、构建并部署了一下,效果还不错:
第一版有了,后续版本更新也会好做很多,需要的小伙伴可以直接收藏:doc.spring4all.com/spring-ai/r…