我们很高兴地宣布Spring AI 1.0.0 RC1,标志着稳定发布之前的最后一组重大更改,错误修复和新功能!GA版本定于2025年5月20日-仅一周之遥。在此期间,我们将专注于改进文档并解决任何报告的错误。
为了庆祝这个版本,我们添加了一首新歌到我们的AI生成的音乐播放列表查看最新曲目增强您的博客阅读和编码体验。
重要链接
- 升级说明
- 您可以使用OpenRewrite配方将升级过程自动化到1.0.0-RC1。此配方有助于为该版本应用许多必要的代码更改。查找食谱和使用说明Arconia Spring AI迁移。
关键突破更改
聊天客户端和顾问
- 在
VectorStoreChatMemoryAdvisor
:CHAT_MEMORY_RETRIEVE_SIZE_KEY
→TOP_K
DEFAULT_CHAT_MEMORY_RESPONSE_SIZE
(100) →DEFAULT_TOP_K
(20)
CHAT_MEMORY_CONVERSATION_ID_KEY
→CONVERSATION_ID
(已移至ChatMemory
接口)- 将导入更新为:
org.springframework.ai.chat.memory.ChatMemory.CONVERSATION_ID
- 将导入更新为:
顾问中的自包含模板
顾问现在使用具有特定必需占位符的独立模板:
QuestionAnswerAdvisor
:query
,question_answer_context
PromptChatMemoryAdvisor
:instructions
,memory
VectorStoreChatMemoryAdvisor
:instructions
,long_term_memory
聊天存储库命名标准化
在1.0.0-RC1中,我们通过添加repository
整个代码库中的后缀。此更改会影响Cassandra、JDBC和Neo4j实现:
工件id
所有与内存相关的工件现在都遵循一致的模式:
spring-ai-model-chat-memory-*
→spring-ai-model-chat-memory-repository-*
spring-ai-autoconfigure-model-chat-memory-*
→spring-ai-autoconfigure-model-chat-memory-repository-*
spring-ai-starter-model-chat-memory-*
→spring-ai-starter-model-chat-memory-repository-*
Java包
- 包路径现在包括
.repository.
细分市场 - 示例:
org.springframework.ai.chat.memory.jdbc
→org.springframework.ai.chat.memory.repository.jdbc
配置类
- 主自动配置类现在使用
Repository
后缀 - 示例:
JdbcChatMemoryAutoConfiguration
→JdbcChatMemoryRepositoryAutoConfiguration
属性
- 从重命名的配置属性
spring.ai.chat.memory.<storage>...
至spring.ai.chat.memory.repository.<storage>...
可观察性变化
- 从跟踪切换到日志记录
- 重命名的属性 (例如,
include-prompt
→log-prompt
) - 已删除OTel SDK依赖项
所有弃用已被删除一个更干净的API。有关完整详细信息,请参见Spring AI升级注意事项。
新功能
模型增强
DeepSeek集成
增加了对核心类和starter的专用DeepSeek模型支持,以适应其与OpenAI API的差异。
Azure OpenAI
- AzureOpenAiResponseFormat中带有builder模式的JSON架构支持
- Entra ID身份管理可简化身份验证
- 用于高效响应处理的流使用支持
- AzureOpenAiChatOptions中的reasoning_effort参数
OpenAI
- OpenAiApi和OpenAiChatModel构建器的变异功能
- 用于改进搜索集成的Web搜索注释
- OpenAiImageModel中的可配置imagesPath
顶点AI双子座
- 参数警告和惩罚选项,以获得更好的输出质量
- jsonToStruct中的JSON数组支持
RAG和文档处理
- RAG Advisor中用于复杂转换管道的DocumentPostProcessors
- 具有向后兼容性的可自定义文本属性名称
工具调用
- 工具回调中的泛型参数类型支持
内存管理
- Jdbccatmemory中灵活的数据库支持
- 通过CassandraChatMemoryRepository支持Cassandra
可观察性
- 用于内容观察的增强日志记录
- 基岩土卫六嵌入模型的可观测性支持
贡献者
还有其他的重构,bug修复,广泛的贡献者全面的文档增强。如果我们还没有得到你的PR,我们会,请耐心等待。感谢
- Alexandros Pappas (apappascs)
- Ana Maria Mihalceanu (ammbra)
- Andres da Silva Santos (andresssantos)
- Barsha Ghosh (barsha-ghosh721)
- Bart Veenstra (bart.veenstra)
- BeomSeogKim (BeomSeogKim)
- Chengcheng Wu (AntonyCheng)
- Claudio Silva Junior (Claudio-code)
- Dariusz Jędrzejczyk (chemicL)
- ddobrin (ddobrin)
- Enrico Rampazzo (enrico.rampazzo)
- g00glen00b (g00glen00b)
- GR (mxsl-gr)
- HYUNSANG HAN (HyunSangHan)
- Jakub (jpomykala)
- Jemin Huh (JM-Lab)
- Jonatan Ivanov (jonatan-ivanov)
- Jonghoon Park (dev-jonghoonpark)
- Lambochen (lambochen)
- Linar Abzaltdinov (linarkou)
- Łukasz Jernaś (deejay1)
- Mark Heckler (mkheck)
- mck (michaelsembwever)
- Michael Simons (michael-simons)
- Mikhail Mazurkevich (mmazurkevich)
- ndoe (ndoe)
- Ngoc Nhan Tran (ngocnhan-tran1996)
- nlinhvu (nlinhvu)
- Poonam Parhar (poonamparhar)
- PSriVarshan (PSriVarshan)
- Solomon Hsu (solnone)
- Temuu-jin (Temuu-jin)
- The-Gamer-01 (The-Gamer-01)
- Thomas Vitale (ThomasVitale)
- Vinay Balamuru (balamuru)
- Wenli Tian (jamespud)
- Yanming Zhou (quaff)
- ykoh42 (ykoh42)
- YunKui Lu (YunKuiLu)