Spring AI 1.0.0 M2 已發布

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

我們很高興宣布 Spring AI 的 1.0.0 Milestone 2 版本發布。

此版本在各個領域帶來了顯著的增強功能和新特性。

重點關注:可觀察性

此版本的主要重點是可觀察性功能,這對於監控、除錯和最佳化 AI 應用程式至關重要。已針對以下項目引入了全面的可觀察性功能:

  • ChatClient (包含 Advisors)
  • 聊天模型 (OpenAI、Ollama、Mistral、Anthropic)
  • 嵌入模型
  • 影像生成模型
  • 向量儲存

注意:對其他 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 執行嵌入請求並查詢 PGVector 資料庫。然後它通過 PromptChatMemoryAdvisor,這個過程花費的時間非常少,最後呼叫 OpenAI gpt-4o 模型。

您可以在可觀察性文件中找到所有可用指標的詳細資訊。

核心改進

  • 新增:用於 ETL 管道的 MarkdownDocumentReader
  • 新增: Cassandra 支援的 聊天記憶體
  • 新增: Typesense testcontainer 整合
  • ChatClient 增強功能
    • 使用明確的輸入類型註冊函數
    • QuestionAnswerAdvisor 的動態篩選器運算式
    • 可自訂的 logger advisor
  • 改進了 ResponseMetadata 和 Message 物件階層的 API 設計
  • 嵌入格式從 List 變更為 float[]
  • 已將 JSON 陣列處理新增至 JsonReader
  • Options 改進
    • ChatOptions:增強了已定義模型的元資料配置
    • EmbeddingOptions:新增了模型和維度選項
    • ImageOptions:新增了樣式選項
  • 已將 ChatOptions 新增至 PromptTemplate 建立方法

ChatModel 增強功能

在聊天模型基礎結構類別中進行了一般性的改進。特定模型的關鍵特性增強功能包括:

  • Anthropic:新增了函數呼叫支援
  • Azure Open AI
    • 函數呼叫整合
    • 已更新至 Azure OpenAI Client 程式庫 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 - 改進了轉換器嵌入模型
  • 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:移除了 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 提示
  • 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 社群中所有即將到來的活動。

查看全部