Spring AI 1.0 GA 发布


Spring AI 1.0 现已正式发布,随之一起发布的还有一首新歌以及一个新 logo。

Spring AI 的核心是ChatClient,一种可移植且易于使用的 API,是与 AI 模型交互的主要接口。

Spring AI 的 ChatClient 支持调用20 个AI 模型,从 Anthropic 到 ZhiPu。它支持多模态输入和输出(当底层模型支持时)以及结构化响应——通常以 JSON 格式呈现,以便于在应用程序中处理输出。

有关 AI 模型功能集的详细比较,可访问参考文档中的聊天模型比较

要构建高效的 AI 应用程序,一系列支持功能至关重要。增强型 LLM 的概念(如下图所示)正是为此而生,它为基础模型添加了数据检索、对话记忆和工具调用等功能。这些功能允许你将自己的数据和外部 API 直接引入模型的推理过程。

在 Spring AI 中实现此模式的关键是 Advisor。

Spring AI ChatClient 的一个关键特性是 Advisor API。这是一个拦截器链,允许你通过注入检索数据和对话内存来修改传入的提示。可以在参考文档的部分中阅读有关它们的更多信息。

Spring AI 还提供了一个可移植的向量存储抽象,支持从 Azure Cosmos DB 到 Weaviate 的 20 种不同的向量数据库。

Spring AI 包含一个轻量级、可配置的 ETL(提取、转换、加载)框架,可简化将数据导入向量存储的过程。它通过可插拔的 DocumentReader 组件支持多种输入源,包括本地文件系统、网页、GitHub 存储库、AWS S3、Azure Blob Storage、Google Cloud Storage、Kafka、MongoDB 和兼容 JDBC 的数据库。通过内置的分块、元数据充实和嵌入生成支持,可以轻松地将几乎任何地方的内容引入 RAG 管道。

Spring AI 还广泛支持检索增强生成 (RAG) 模式。可以从简单的QuestionAnswerAdvisor开始,为提示注入相关上下文,或者使用RetrievalAugmentationAdvisor扩展到更复杂的模块化 RAG 管道,为你的应用量身定制。

可以在参考文档的部分中阅读有关它们的更多信息。

对话历史记录是创建 AI 聊天应用程序的重要组成部分。Spring AI 通过ChatMemory接口支持这一点,该接口可管理消息的存储和检索。MessageWindowChatMemor实现在一个滑动窗口中保存最近的 N 条消息,并随着对话的进行不断更新。它委托给一个ChatMemoryRepository,目前为 JDBC、Cassandra 和 Neo4j 提供了存储库实现,更多实现即将推出。

另一种方法是使用VectorStoreChatMemoryAdvisor。它不仅仅记住最新消息,还使用向量搜索从过去的对话中检索语义最相似的消息。

可以在参考文档的部分中阅读有关它们的更多信息。

Spring AI 可以通过 tools(让 AI 检索外部信息或采取实际行动的自定义函数)轻松扩展模型的功能。Tools 可以获取当前天气、查询数据库或返回最新消息,帮助模型回答训练数据之外的问题。它们还可以触发工作流、发送电子邮件或更新系统--使模型成为应用程序的积极参与者。

可以在参考文档的部分中阅读有关它们的更多信息。

Spring AI 可以轻松检查 AI 生成内容的准确性和相关性。它配备了灵活的Evaluator界面和两个方便的内置评估器:

  • RelevancyEvaluator – 帮助确定 AI 的响应是否与用户的问题和检索到的上下文真正匹配。它非常适合测试 RAG 流程,并使用可自定义的提示来询问另一个模型:“根据检索到的内容,这个响应是否合理?”
  • FactCheckingEvaluator – 根据提供的上下文验证 AI 的响应是否符合事实。它的工作原理是要求模型判断某个语句是否在逻辑上得到文档的支持。可以使用 Bespoke 的 Minicheck(通过 Ollama)等小型模型来运行此模型,这比每次检查都使用 GPT-4 之类的工具要便宜得多。

可以在参考文档的部分中阅读更多信息。 

Spring AI 可以轻松观察模型的运行情况、性能以及成本。Spring AI 与Micrometer集成,提供有关关键指标的详细遥测,例如:

  • 模型延迟——你的模型需要多长时间才能做出反应(不仅仅是情感上的)。
  • token 使用情况——每个请求的输入/输出 token,因此可以跟踪和优化成本。
  • 工具调用和检索——了解你的模型何时充当有用的助手,而不是仅仅在向量存储上免费加载。

还可以通过Micrometer Tracing获得全面的跟踪支持,其中包含模型交互中每个主要步骤的跨度。可以获取有助于故障排除的日志消息,以便查看用户提示或向量存储响应的内容。

可以在参考文档的部分中阅读更多信息。

此外, Spring AI 团队在 MCP 规范发布后不久就开始支持该规范,并将这些代码捐赠给 Anthropic作为MCP Java SDK的基础。Spring AI 围绕此基础提供了丰富的功能。

Spring AI 通过其客户端启动模块,简化了 MCP 工具的使用。添加 `spring-ai-starter-mcp-client` 依赖项,即可快速连接远程 MCP 服务器。Spring Boot 的自动配置功能可处理繁重的工作,因此你的客户端无需过多的样板代码即可调用 MCP 服务器公开的工具,让你专注于构建高效的 AI 工作流。Spring 让你可以轻松连接到 MCP 服务器提供的 stdio 和基于 HTTP 的 SSE 端点。

Spring AI 还简化了 MCP 服务器的创建。只需添加spring-ai-starter-mcp-server依赖项,即可快速将 Spring 组件转换为符合 MCP 标准的服务器。

Spring AI 支持几种构建代理行为的工作流模式:

  • Evaluator Optimizer —— 该模型分析自身的反应,并通过结构化的自我评估过程对其进行改进。

  • Routing —— 此模式能够根据用户请求和上下文的分类将输入智能路由到专门的处理程序。
  • Orchestrator Workers —— 这种模式是一种灵活的方法,用于处理需要动态任务分解和专门处理的复杂任务
  • Chaining —— 该模式将复杂的任务分解为一系列步骤,其中每个 LLM 调用都会处理前一个调用的输出。
  • Parallelizatio —— 该模式对于需要并行执行 LLM 调用并自动进行输出聚合的情况很有用。

这些模式可以使用 Spring AI 的聊天模型和工具执行功能来实现,其中框架可以处理大部分底层复杂性。Spring AI 还支持通过 MCP 开发自主代理。

更多详情可查看官方公告。


相關推薦

2022-11-23

Spring Authorization Server 1.0 现已正式发布,Spring Authorization Server 是 Spring Security 团队领导的社区驱动项目,致力于解决 Spring 社区的 OAuth 2.0 Authorization Server 支持问题。 公告称,自 2020 年 4 月 2 日首次提交以

2023-08-11

Spring Modulith 1.0 RC1 现已正式发布。Spring Modulith 是一个新的、实验性的 Spring 项目,支持开发人员在 Spring Boot 应用程序中实现逻辑模块,它允许应用结构验证、记录模块安排、为单个模块运行集成测试、在运行时观察模块

2025-05-15

Spring AI 1.0.0 RC1 现已正式发布,这标志着稳定版发布前的最后一批重大变更、错误修复和新功能。 GA 版本计划于 2025 年 5 月 20 日发布,距离正式版发布仅剩一周时间。在此期间,项目团队将专注于改进文档并解决所有已报告的

2023-04-15

ngoDB 替代品,建立在 PostgreSQL 之上,并在 Apache 2.0 许可下发布。 FerretDB 希望将 MongoDB 数据库的工作负载带回其开源的本源,使 PostgreSQL 和其他数据库后端能够运行 MongoDB 工作负载,保留 MongoDB 现有生态所提供的机会。 在任

2022-11-26

ubsystem for Linux (WSL) 已从“预览”阶段毕业,并随着 1.0 的发布正式升级为 "GA"。 WSL 在去年被上架到 Microsoft Store,以方便用户更容易进行安装和更新,最初只支持 Windows 11。现在微软表示,为了满足社区用户的需求,Microsoft

2023-11-20

Spring Data 2023.1 (代号:Vaughan) 现已正式发布,该版本包含多个基础架构主题以及对单个存储模块的改进。 Spring Data 2023.1 已将 Spring Framework baseline 升级到 6.1,同时还升级了 Project Reactor 2023.0.0 和 Micrometer 1.12.0,要求将 Java 17 作为

2023-08-29

京站,聊聊 AI 大模型与底层技术 >>> 大家好,夜莺项目发布 v6.1.0 版本,这是一个中版本迭代,不止是 bugfix 了,而是引入了既有功能的增强。具体增强了什么功能,下面一一介绍。 1. 增强可观测性数据串联 从 v6.1.0 开始,对

2025-05-07

Spring AI 1.0.0 M8 现已发布。项目团队原定于 Spring AI 1.0.0 M7 为最后一个里程碑版本,但在审查了API 设计和 M7 后的弃用情况后,其确定一些重大变更在 RC1 版本中将成为破坏性变更。因此引入了这个额外的里程碑,为开发者

2022-07-28

Spring Shell 2.1.x 完全依赖于 Spring Boot 2.x,并不试图与旧的 Spring Shell 1.x 或 Spring Boot 1.x 保持任何向后兼容。 Spring Shell 2.1 发布,更新内容如下: Command Registration CommandRegistration 是一种定义命令的新编程方式。现有的命令注解模

2023-11-22

Spring Security 6.2 已正式 GA。 Spring Security 是一个能够为基于 Spring 的企业应用系统提供声明式的安全访问控制解决方案的安全框架。它提供了一组可以在 Spring 应用上下文中配置的 Bean,充分利用了 Spring IoC,DI(控制反转 Invers

2022-11-26

Spring Modulith 是一个新的、实验性的 Spring 项目,支持开发人员在 Spring Boot 应用程序中实现逻辑模块,它允许应用结构验证、记录模块安排、为单个模块运行集成测试、在运行时观察模块交互,以及以松散耦合的方式实现模块

2023-05-18

Spring Security 6.1 已正式 GA。 Spring Security 是一个能够为基于 Spring 的企业应用系统提供声明式的安全访问控制解决方案的安全框架。它提供了一组可以在 Spring 应用上下文中配置的 Bean,充分利用了 Spring IoC,DI(控制反转 Inversion o

2022-11-30

Spring Vault 3.0 已正式 GA。 Spring Vault 为访问、存储和废弃机密数据提供客户端支持,以及为开发者提供熟悉的 Spring 抽象。它提供了与 Vault 交互的底层和高级抽象,使开发者无需担心基础设施问题。 基于 HashiCorp 的 Vault,

2023-05-14

Spring Data 2023.0 现已全面可用,此版本重点关注 AOT 后续工作和一些特定于模块的改进。 Spring Data2023.0利用 Spring Framework6.0.9以及 Project Reactor2022.0.7和 Micrometer 1.10.6作为其 baseline。 此版本的一个总体主题是引入 keyset-based sc