跳到主要内容

1.0.1

云端
Spring AI 学习者

Spring AI 1.0.1 正式发布,作为 1.0.0 后的首个维护版本,累计合并 160 个提交,涉及 401 个文件(+6,182 / -1,297 行),包含模型适配增强、核心抽象改进及大量缺陷修复。

核心变更

ChatClient

  • ChatClient#mutate() 现在会深拷贝 advisorsadvisorParams,避免可变共享导致的副作用

Prompt / Message

  • SystemPromptTemplate —— 修复 builder() 返回类型错误(GH-3526),现正确返回 SystemPromptTemplate.Builder 而非 PromptTemplate.Builder
  • MessageAggregator —— 重构以支持流式响应中的 ToolCall 聚合,确保工具调用在 streaming 模式下正常工作
  • Prompt.augmentSystemMessage() —— 修复重复添加 SystemMessage 的缺陷,现正确扫描完整消息列表后仅在缺失时追加

Tool Calling

  • 可配置异常处理 —— DefaultToolExecutionExceptionProcessor 支持选择性异常重抛,可通过 ToolCallingProperties 配置
  • 增强 @Tool 注解发现 —— MethodToolCallbackProvider 改用 AnnotationUtils.findAnnotation(),支持组合注解与 Spring 元注解
  • 同名方法修复 —— 修复多 ToolCallback 下同名方法调用抛出异常的问题(GH-2774)

Structured Output

  • KeywordMetadataEnricher —— 新增自定义模板支持,Builder 现可接收自定义 PromptTemplate,不再局限于仅配置关键词数量

MCP

  • AsyncMcpToolCallback / SyncMcpToolCallback 异常处理改进,现使用 ToolExecutionException 替代原始异常类型
  • 动态 MCP 客户端选择示例补充

模型厂商

OpenAI

  • Web Search —— OpenAiChatOptions 新增 webSearchOptions() 支持,允许模型进行联网搜索
  • 语音合成 —— 新增 ASHBALLADCORALSAGE 四种语音
  • PDF 输入 —— MediaContent 新增 InputFile 类型,支持上传 PDF 作为多模态输入
  • 动态 API Key —— 每次请求动态解析 ApiKey,支持运行时密钥切换
  • 修复音频文件名在转录/翻译请求中丢失的问题(GH-3557)
  • 修复 webSearchOptionscopy() 中未传递的问题

Anthropic

  • 新模型支持 —— 适配 claude-opus-4claude-sonnet-4(GH-3351)
  • Streaming Thinking —— 支持流式思维事件输出
  • 动态 API Key —— 每次请求动态解析 ApiKey
  • 修复流式模式下无参数工具调用的处理逻辑
  • 修复 StreamHelper 中的 NPE(GH-3755)

Ollama

  • 重试集成 —— OllamaChatModel 集成重试模板,增强瞬时故障容错
  • 多模态能力增强
  • 修复自动配置变更导致的回归问题

Mistral AI

  • 新增聊天模型支持
  • MistralChatOptions 功能更新

Bedrock / Bedrock Converse

  • 修复 BedrockTitanEmbeddingModel 未返回 usage 的问题
  • 修复流式工具调用中无输入参数的处理
  • 移除 BedrockConverseProxyChatProperties 中硬编码的 topK

DeepSeek

  • 修复空 id/name 导致的 ToolCall 错误合并

ZhiPu AI

  • 移除 ZhiPuAiChatModel 中未使用的选项,精简 API
  • ZhiPuAiEmbeddingOptions 支持自定义维度

MiniMax

  • MiniMaxChatOptions 完善 equals()hashCode() 和深拷贝支持

Vertex AI Gemini

  • 修正 frequencyPenalty 拼写(原为 frequencyPenalty
  • 重构 VertexAiGeminiSafetySetting Builder 模式

向量数据库

Chroma

  • 复杂元数据值的处理与测试强化
  • 修复 ChromaVectorStore 自动配置中缺失的属性(GH-3435)

Elasticsearch

  • 修复配置 embeddingFieldName 后未生效的问题(GH-3501)
  • 修复相似度选项解析逻辑

Milvus

  • Schema 初始化逻辑改进,更新废弃 API 调用

Qdrant

  • Long 类型在 payload 中转 String 存储
  • 允许 null 元数据值

Neo4j

  • 自动从模型推断默认嵌入维度

PgVector

  • 多项稳定性改进

OpenSearch

  • 补充 embeddingFieldName 属性说明

聊天记忆

  • MySQL / MariaDB 支持 —— 新增 MySQL Schema 和 MariaDB 集成测试
  • SQL Server 集成测试 —— 补充 JdbcChatMemoryRepositorySqlServerIT
  • JDBC 连接泄漏修复 —— DataSource.getConnection() 改用 try-with-resources

Bug Fix 汇总

除上述模块级修复外,1.0.1 还包含以下重要修复:

  • JsonParser —— 修复已合法 JSON 字符串被二次序列化的问题
  • MimeTypeDetector —— 修复 getMimeType(Path) 中的无限递归
  • OpenSearch —— 移除文档中重复的依赖声明
  • MariaDB Schema Validator —— 修复 isTableExists 方法的 SQL 错误(GH-3492)
  • ChromaDB —— 修复集合创建日志记录错误
  • Cloud Bindings —— 修正拼写错误
  • Qdrant ObjectFactory —— 允许 null 元数据值

基础设施

  • Spring Boot 升级至 3.5.0 —— 基于最新的 Spring Boot 版本构建
  • Maven Central 发布 —— 正式发布至 Maven Central 仓库
  • CI/CD —— 新增 auto-cherry-pick 和 backport-issue 工作流

Spring AI 1.0.1 聚焦于稳定性与模型适配的持续完善,为生产级部署提供了更可靠的基础。文档站将随框架演进持续更新。