Spring AI 1.0.0 M2 发布

发布 | Mark Pollack | 2024年8月23日 | ...

我们很高兴地宣布 Spring AI 1.0.0 Milestone 2 版本发布。

本次发布在各个领域带来了重要的增强和新功能。

核心关注点:可观测性

本次发布的一个主要重点是可观测性功能,这对于监控、调试和优化 AI 应用程序至关重要。已经为以下方面引入了全面的可观测性功能:

  • ChatClient(包括 Advisor)
  • 聊天模型(OpenAI、Ollama、Mistral、Anthropic)
  • 嵌入模型
  • 图像生成模型
  • 向量存储

注意:对其他 ChatModel 实现的支持将在未来的版本中添加。

以下是一些展示此功能的示例,供您开始使用:

非常感谢 Thomas Vitale 为可观测性功能做出的巨大贡献!

以下是展示以下代码跟踪的屏幕截图:

var response = chatClient.prompt()
	.user("How does Carina work?")
	.advisors(new QuestionAnswerAdvisor(vectorStore, SearchRequest.defaults()))
	.advisors(new PromptChatMemoryAdvisor(chatMemory))
	.call()
	.chatResponse();

Grafana view of Spring AI Trace

在跟踪视图中,您可以看到 ChatClient 调用的嵌套,它首先经过两个 Advisor:QuestionAnswerAdvisor(它进行嵌入请求并查询 PGVector 数据库),然后经过 PromptChatMemoryAdvisor(耗时很短),最后才是调用 OpenAI 的 gpt-4o 模型。

您可以在 可观测性文档中找到所有可用指标的详细信息。

核心改进

  • 新增:用于 ETL 流水线的 MarkdownDocumentReader
  • 新增:基于 Cassandra 的 聊天记忆
  • 新增:Typesense testcontainer 集成
  • ChatClient 增强功能
    • 使用显式输入类型注册函数
    • QuestionAnswerAdvisor 的动态过滤表达式
    • 可自定义的日志记录 Advisor
  • ResponseMetadata 和 Message 对象层次结构的 API 设计改进
  • 嵌入格式从 List 更改为float[]
  • 向 JsonReader 添加了 JSON 数组处理
  • Options 改进
    • ChatOptions:增强了已定义模型的元数据配置
    • EmbeddingOptions:添加了模型和维度选项
    • ImageOptions:添加了样式选项
  • ChatOptions 已添加到 PromptTemplate 的 create 方法中

ChatModel 增强功能

对聊天模型基础设施类进行了通用改进。特定模型的关键功能增强包括:

  • Anthropic:添加了函数调用支持
  • Azure Open AI
    • 函数调用集成
    • 更新至 Azure OpenAI 客户端库 1.0 beta-10
    • 新增:转录支持
    • 添加了字节数组的图像处理
    • 添加了多模态支持
    • 添加了 OpenAI API 密钥和 MS-Entra 身份验证选项
  • Amazon Bedrock:将 bedrockruntime 版本更新至 2.26.7
  • HuggingFace:添加了 Boot starter
  • Minimax
    • 改进了函数调用
    • 添加了 Web 搜索工具支持
    • 引入了敏感信息屏蔽选项
  • Mistral
    • 添加了函数调用支持
    • 关于通过 Spring AI 的 OpenAI 客户端使用 Mistral AI 的文档
  • 新增:带函数调用的 Moonshot 聊天模型
  • Ollama
    • 函数调用支持
    • 批量嵌入请求功能
  • OpenAI
  • 新增:QianFan 模型,支持 聊天嵌入图像生成。
  • ONNX - 改进的 transformer 嵌入模型
  • Google Vertex AI
    • 添加 嵌入模型支持
    • 将 Google Vertex SDK 更新至 26.41.0
    • 解决了并行函数调用问题
    • 添加了系统消息支持
    • 在 chat options 中添加了 ResponeMimeType
    • 添加了 Google 搜索检索工具支持
  • ZhiPu:添加了函数调用支持

感谢 Geng Rong 对 Moonshot、QianFan 和 ZhiPu 模型支持的贡献。

向量存储改进

  • 重大变更:向量存储配置属性 initialize-schema 的默认值已更改为 false。
  • 引入了 BatchingStrategy 以实现高效的文档嵌入操作
    • 添加了 TokenCountBatchingStrategy 实现
  • Cassandra:添加了 CassandraChatMemory
  • Chroma
    • 从使用 RestTemplate 升级到 RestClient
    • 集成了 ChromaDB 的 CHROMA_SERVER_AUTHN_CREDENTIALS 环境变量,用于 Docker Compose 和 Testcontainers
  • Gemfire:增强了功能
  • Milvus:移除了 flush 操作,以防止创建过多的 segment
  • MongoDB:使用 org.bson.Documents 提高了效率
  • Neo4j - 更新至最新的 Cypher-DSL
  • 新增:Opensearch VectorStore 实现 感谢 Jemin Huh
  • 新增:Oracle 23ai VectorStore 实现 感谢 Loïc Lefèvre
  • PGVector
    • 引入了可自定义的 schema、table 和 index 名称
    • 修复了 JSON 查询的 IN/NOT IN 过滤器
  • Pinecone
    • 添加了可配置的内容和距离元数据字段
    • 添加了 AOT hints
  • Redis:启用了标准 RedisAutoConfiguration 的使用
  • 新增:Typesense 支持

通用改进

在广大贡献者的努力下,在各个方面进行了大量的重构、错误修复和文档增强。如果我们还没有处理到您的 PR,我们会尽快处理,请耐心等待。感谢

Mohammed, Ahmed Yousri Salama, Ashwin Krishna K, blackbean99, Youngrae Cho, DadySu, Jerry (Flyingblu), Lorenzo Caenazzo, Jemin Huh, Bill Lau, JayPark7821, KAMOsama, David Caudill, Lee-ChungMu, Pablo Sanchi, Seol_JY, TarasVovk669, Thomas Vitale, TimJ0212, Fu Cheng, ashni, Benoit Moussaud, Dariusz Jędrzejczyk, cocomongg, ChanYeong, David Afriz, devholic22, Mariusz Bernacki, dongfeng3692, Dave Syer, Eddú Meléndez, El Mahdi Oukhamou, Seongmin Kim, Francisco Javier Torres, geetrawat, Craig Walls, yinpeng, Sinsy, Johnny Lim, jo-kim, Josh Long, KimMinjeong, Cameron Kirk, Laura Trotta, Loïc Lefèvre, Hyoseop Song, luocq3, Michael Simons, mck, Jonatan Soto, Muthukumaran Navaneethakrishnan, Geng Rong, Nicholas Zhan, Szymon Ochnio, Philipp Gerhard, Piotr Olaszewski, rapenumaka, rivkode, Ross Lawley, Andrea Rubino, Soby Chacko, xiaoxin, Stefan Vassilev, Tim Kelly, Chris Turchin, uzhuraul, Veerendra Vellanki, 吴博, xiehui1956, xsg22, 양예성, Yulong Shi, jiwoo, zlzzlzz2l

获取 Spring 新闻通讯

通过 Spring 新闻通讯保持联系

订阅

领先一步

VMware 提供培训和认证,助您加速进步。

了解更多

获得支持

Tanzu Spring 提供 OpenJDK™、Spring 和 Apache Tomcat® 的支持和二进制文件,只需一份简单的订阅。

了解更多

即将举行的活动

查看 Spring 社区所有即将举行的活动。

查看所有