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 社群的所有近期活動。

檢視全部