Spring AI 1.0.0 M2 发布

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

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

此版本在各个领域带来了重大增强和新功能。

重点关注:可观察性

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

  • ChatClient(包括顾问)
  • 聊天模型(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调用的嵌套,它首先通过两个顾问,QuestionAnswerAdvisor执行嵌入请求并查询 PGVector 数据库。然后它通过PromptChatMemoryAdvisor,该顾问花费的时间很少,最后调用 OpenAI 的gpt-4o模型。

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

核心改进

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

聊天模型增强功能

在聊天模型基础结构类中进行了总体改进。特定模型的关键功能增强包括

  • Anthropic:添加了函数调用支持
  • Azure Open AI
    • 函数调用集成
    • 更新到 Azure OpenAI 客户端库 1.0 beta-10
    • 新增:转录支持
    • 添加了对字节数组的图像处理
    • 添加了多模态支持
    • 添加了 OpenAI API 密钥和 MS-Entra 身份验证选项
  • Amazon Bedrock:将bedrockruntime版本更新到 2.26.7
  • HuggingFace:添加了 Boot 启动器
  • Minimax
    • 改进了函数调用
    • 添加了 Web 搜索工具支持
    • 引入了敏感信息屏蔽选项
  • Mistral
    • 添加了函数调用支持
    • 通过 Spring AI 的 OpenAI 客户端使用 Mistral AI 的文档
  • 新增:具有函数调用的Moonshot 聊天模型
  • Ollama
    • 函数调用支持
    • 批量嵌入请求功能
  • OpenAI
  • 新增:用于聊天嵌入图像生成的 QianFan 模型。
  • ONNX - 改进的转换器嵌入模型
  • Google Vertex AI
    • 添加嵌入模型支持
    • 将 Google Vertex SDK 更新到 26.41.0
    • 解决了并行函数调用
    • 添加了系统消息支持
    • 在聊天选项中添加了 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:删除了刷新操作以防止过度创建段
  • MongoDB:使用org.bson.Documents提高了效率
  • Neo4j - 更新到最新的 Cypher-DSL
  • 新增:Opensearch 向量存储实现 感谢Jemin Huh
  • 新增:Oracle 23ai 向量存储实现 感谢Loïc Lefèvre
  • PGVector
    • 引入了可自定义的模式、表和索引名称
    • 修复了 JSON 查询的 IN/NOT IN 过滤器
  • Pinecone
    • 添加了可配置的内容和距离元数据字段
    • 添加了 AOT 提示
  • Redis:启用了使用标准RedisAutoConfiguration
  • 新增:Typesense 支持

常规改进

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

穆罕默德·艾哈迈德·优素福·萨拉玛Ashwin Krishna Kblackbean99Youngrae ChoDadySuJerry (Flyingblu)Lorenzo CaenazzoJemin HuhBill LauJayPark7821KAMOsamaDavid CaudillLee-ChungMuPablo SanchiSeol_JYTarasVovk669Thomas VitaleTimJ0212傅成ashniBenoit MoussaudDariusz JędrzejczykcocomonggChanYeongDavid Afrizdevholic22Mariusz Bernackidongfeng3692Dave SyerEddú MeléndezEl Mahdi OukhamouSeongmin KimFrancisco Javier TorresgeetrawatCraig WallsyinpengSinsyJohnny Limjo-kimJosh LongKimMinjeongCameron KirkLaura TrottaLoïc LefèvreHyoseop Songluocq3Michael SimonsmckJonatan SotoMuthukumaran Navaneethakrishnan耿荣Nicholas ZhanSzymon OchnioPhilipp GerhardPiotr OlaszewskirapenumakarivkodeRoss LawleyAndrea RubinoSoby ChackoxiaoxinStefan VassilevTim KellyChris TurchinuzhuraulVeerendra Vellanki吴博xiehui1956xsg22양예성Yulong Shijiwoozlzzlzz2l

获取 Spring 时事通讯

通过 Spring 时事通讯保持联系

订阅

抢先一步

VMware 提供培训和认证,助您加速发展。

了解更多

获取支持

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

了解更多

即将举行的活动

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

查看全部