
在审查M7版本后的API设计和弃用公告后,我们确认多项重大变更将在RC1预发布版本中引入破坏性更新。为此,我们新增了过渡性版本,使已弃用API与其替代方案能够共存,从而为开发者在升级到RC1前提供更顺畅的迁移体验。
以下是本次版本的主要变更:
重要链接
- 升级说明
- 您可以使用 OpenRewrite 配方自动执行到 1.0.0-M8 的升级过程。此配方有助于为此版本应用许多必要的代码更改。在 Arconia Spring AI Migrations 中查找配方和使用说明。
新功能
- 聊天内存增强功能
- 增强的聊天内存架构
- 模板渲染*
- 引入 TemplateRenderer 进行提示模板
- 用于模板渲染的灵活新 API,可在不同的模板引擎之间提供一致的接口
- 包括对内置函数StTemplateRenderer和自定义验证选项的新功能。在此处查看如何使用它。
- 直接集成到 ChatClient 中,以简化提示模板
- 为不需要模板的情况添加
NoOpTemplateRenderer - 相关内容: “在 ChatClient 中配置 TemplateRenderer”, “更新文档以提及 NoOpTemplateRenderer”
- MCP 改进
- 增强的 MCP 工具回调配置
- 向 MCP 客户端属性添加了工具回调配置
- 支持 MCP 服务器中的完成规范
- 添加了对 MCP 服务器的指令支持
- 向 WebFlux 和 WebMvc 传输提供程序添加了 SSE 端点参数
- 添加 Prompt Engineering Patterns 文档
- 关于高级提示工程技术的新综合文档
- 为开发人员提供有效提示设计的最佳实践
- 包括各种使用案例的示例和模式
- Vector Store 增强功能
- Cosmos DB Entra ID 支持和修复
- 为 Cosmos DB 添加了 Azure Entra ID(以前称为 Azure AD)身份验证
- 改进了 Azure 部署的安全性和身份验证选项
- Cassandra Vector Store 改进
- 修复了 Cassandra 聊天内存中的消息顺序
- 添加了更好的错误消息并修复了各种问题
弃用
需要注意的重要弃用包括:
- 聊天客户端增强功能:
- 已更新ChatClient,以确保用户和系统提示始终在 advisor 执行之前呈现。此更改将
AdvisedRequest和 AdvisedResponsAPI 替换为eChatClientRequest和ChatClientResponse 。
- 已更新ChatClient,以确保用户和系统提示始终在 advisor 执行之前呈现。此更改将
- 提示模板和 Advisors:
- 与提示创建和 advisor 自定义相关的类和方法已弃用,取而代之的是构建器模式和
TemplateRenderer界面。
- 与提示创建和 advisor 自定义相关的类和方法已弃用,取而代之的是构建器模式和
- QuestionAnswerAdvisor 弃用:
- 弃用了依赖于简单字符串的userTextAdvise构造函数和构建器方法。
- 聊天内存配置:
- 该属性spring.ai.chat.memory.jdbc.initialize-已弃用,取而代之的是
schemaspring.ai.chat.memory.repository.jdbc.initialize-schema
- 该属性spring.ai.chat.memory.jdbc.initialize-已弃用,取而代之的是
- 文件处理:
- 该 API 取代了已弃用的 API,如DocumentPostProcessor 、 DocumentCompressor和
DocumentRankerDocumentSelector。
- 该 API 取代了已弃用的 API,如DocumentPostProcessor 、 DocumentCompressor和
- 聊天内存弃用:
@Deprecated List<Message> get(String conversationId, int lastN);已在ChatMemory 中弃用。
贡献
还有许多其他的重构、错误修复、文档增强,由广泛的贡献者进行。如果我们还没有收到您的 PR,我们会的,请耐心等待。感谢
- Alexandros Pappas (apappascs)
- Berjan Jonker (berjanjonker)
- Changho Kim (ohiomanbo)
- claudio-code (Claudio-code)
- David Frizelle (dafriz)
- ddobrin (ddobrin)
- Eddú Meléndez (eddumelendez)
- Gareth Evans (garethjevans)
- He-Pin (He-Pin)
- Ivan97 (Ivan97)
- James Ward (jamesward)
- Jee14 (jee14)
- Jito Kim (jitokim)
- Jobmission (jobmission)
- Jackie Gleason (jrgleason)
- Kimsunghyun1995 (kimsunghyun1995)
- Kushagra Thapar (kushagraThapar)
- Linar Abzaltdinov (linarkou)
- LiujunjieALiling (smartliujunjie)
- Łukasz Jernaś (deejay1)
- Miloš Havránek (MilosHavranek)
- Nicolas Krier (nicolaskrier)
- Ngoc Nhan Tran (ngocnhan-tran1996)
- Paoxia (paoxia)
- Ricken Bazolo (ricken07)
- Robin Elysia (RobinElysia)
- Seunghyeon Ji (jee14)
- Shishuiwuhen2009 (shishuiwuhen2009)
- StudiousXiaoYu (StudiousXiaoYu)
- Sun Yuhan (sunyuhan1998)
- TeslaCN (TeslaCN)
- Theo van Kraay (TheovanKraay)
- Thomas Vitale (ThomasVitale)
- Wenhao Ma (yangtuooc)
- YunKui Lu (YunKuiLu)
Linuxeden开源社区