Spring AI 1.0.0 M2 发布

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

我们很高兴宣布 Spring AI 的 1.0.0 里程碑 2 版本已发布。

此版本在多个领域带来了显著增强和新特性。

核心重点:可观察性

此版本的主要重点在于可观察性功能,这对监控、调试和优化 AI 应用至关重要。我们为以下方面引入了全面的可观察性特性:

  • ChatClient(包括 Advisors)
  • Chat 模型(OpenAI, Ollama, Mistral, Anthropic)
  • Embedding 模型
  • 图像生成模型
  • 向量数据库

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

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

Grazie mille (一千个感谢 😉) 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 调用的嵌套,它首先通过两个 advisors:QuestionAnswerAdvisor 执行 embedding 请求并查询 PGVector 数据库;然后通过 PromptChatMemoryAdvisor,耗时非常短;最后调用 OpenAI 的 gpt-4o 模型。

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

核心改进

  • 新增: MarkdownDocumentReader 用于 ETL 管道
  • 新增: Cassandra 支持的 聊天记忆
  • 新增: Typesense testcontainer 集成
  • ChatClient 增强功能
    • 函数注册,支持显式输入类型
    • QuestionAnswerAdvisor 的动态过滤表达式
    • 可定制的 logger advisor
  • 改进了 ResponseMetadata 和 Message 对象层次结构的 API 设计
  • Embedding 格式从 List 更改为float[]
  • JsonReader 添加了 JSON 数组处理功能
  • 选项改进
    • ChatOptions:增强了已定义模型的元数据配置
    • EmbeddingOptions:添加了模型和维度选项
    • ImageOptions:添加了样式选项
  • ChatOptions 添加到 PromptTemplate 的创建方法中

ChatModel 增强功能

对 chat model 基础设施类进行了全面改进。特定模型的关键特性增强包括:

  • Anthropic:添加了函数调用支持
  • Azure OpenAI
    • 函数调用集成
    • 更新到 Azure OpenAI Client library 1.0 beta-10
    • 新增: 转录支持
    • 添加了字节数组的图像处理
    • 添加了多模态支持
    • 添加了 OpenAI API key 和 MS-Entra 认证选项
  • Amazon Bedrock:更新了 bedrockruntime 版本到 2.26.7
  • HuggingFace:添加了 Boot starter
  • Minimax
    • 改进了函数调用
    • 添加了 Web 搜索工具支持
    • 引入了敏感信息掩码选项
  • Mistral
    • 添加了函数调用支持
    • 关于如何通过 Spring AI 的 OpenAI 客户端使用 Mistral AI 的文档
  • 新增: 支持函数调用的 Moonshot chat 模型
  • Ollama
    • 函数调用支持
    • 批量 embedding 请求功能
  • OpenAI
  • 新增: QianFan 模型支持聊天embedding图像生成。
  • ONNX - 改进的 transformer embedding 模型
  • Google Vertex AI
    • 添加 Embedding 模型 支持
    • 更新 Google Vertex SDK 到 26.41.0
    • 解决了并行函数调用问题
    • 添加了系统消息支持
    • 在 chat 选项中添加了 ResponseMimeType
    • 添加了 Google 搜索检索工具支持
  • ZhiPu (智谱):添加了函数调用支持

感谢 Geng Rong 对 Moonshot, QianFan 和 ZhiPu 模型的支持。

向量数据库改进

  • 重大变更:向量数据库配置属性 initialize-schema 的默认值更改为 false。
  • 引入了 BatchingStrategy 以实现高效的文档 embedding 操作
    • 添加了 TokenCountBatchingStrategy 实现
  • Cassandra:添加了 CassandraChatMemory
  • Chroma
    • 从使用 RestTemplate 升级到 RestClient
    • 集成了 ChromaDB 的 CHROMA_SERVER_AUTHN_CREDENTIALS 环境变量,用于 Docker Compose 和 Testcontainers
  • Gemfire:增强了功能
  • Milvus:移除了 flush 操作,以防止创建过多段
  • 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 社区的所有近期活动。

查看全部