Spring AI 1.0 GA版本终于正式发布!第一个正式版本,超多内容,每个Java开发者都必须了解一下!

Spring AI全新Logo

核心功能包括支持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 Stores

3. 对话记忆(ChatMemory)

  • 基础实现MessageWindowChatMemory通过滑动窗口存储最近N条消息,支持JDBC、Cassandra、Neo4j等持久化存储。
  • 高级功能VectorStoreChatMemoryAdvisor基于向量搜索检索语义相似历史消息,参考案例《Guide to chat memory implementation》

4. 工具调用(Function Calling)

  • 通过@Tool注解声明工具方法,支持动态注册Bean或编程式创建,可调用天气查询、数据库操作等外部功能,配套《Guide to local tool calling》
@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 的正式发布,对于 Java 开发者来说,是一次重大的升级。它不仅提供了强大的 AI 能力,还提供了丰富的工具和框架,帮助开发者更轻松地构建 AI 应用。DD也一直有在用Spring AI,最近也会第一时间把项目升级到正式版本,如果遇到问题,再继续分享。

最后,做个小调研,你现在用什么框架来构建AI应用呢?留言区聊一聊吧~

感谢阅读!如果您学习过程中如遇困难?可以加入我们超高质量的技术交流群,参与交流与讨论,更好的学习与进步!