領先一步
VMware 提供培訓和認證,助您快速進步。
瞭解更多我們很高興地宣佈 Spring AI 的 1.0.0 M3 版本釋出。
此版本在多個領域帶來了顯著的增強和新功能。
此版本對可觀測性堆疊進行了許多改進,特別是針對聊天模型的流式響應。非常感謝 Thomas Vitale 和 Dariusz Jedrzejczyk 在此領域的幫助!
可觀測性涵蓋了 ChatClient、ChatModel、嵌入模型和向量儲存,使您能夠精細地檢視與 AI 基礎設施的所有接觸點。
在 M2 版本中,我們引入了對 OpenAI、Ollama、Mistral 和 Anthropic 模型的可觀測性支援。現在,我們已將其擴充套件到包括對以下模型的支援:
感謝 Geng Rong 為中文模型實現可觀測性。
您可以在可觀測性參考文件中找到有關可用指標和跟蹤的更詳細資訊。這裡有一些圖表展示了可能實現的效果。
Spring AI Advisors 是用於攔截和潛在修改 AI 應用程式中聊天完成請求和響應流程的元件。Advisors 還可以選擇透過不呼叫鏈中的下一個 Advisor 來阻止請求。
這個系統中的關鍵角色是 AroundAdvisor,它允許開發人員在此類互動中動態地轉換或利用資訊。
使用 Advisors 的主要優勢包括
我們重新審視了 Advisor API 模型,並進行了許多設計更改,提高了其應用於流式請求和響應的能力。您還可以使用 Spring 的 Ordered
介面顯式定義 Advisor 的順序。
根據您使用的 API 區域,可能存在破壞性更改,請參閱文件瞭解更多詳細資訊。
around advisor 的流程如下所示。
您可以閱讀 Christian Tzolov 的近期部落格文章 使用 Spring AI Advisors 加速您的 AI 應用程式,瞭解更多詳細資訊。
Spring AI 現在支援透過包含鍵值對的 ToolContext
類向函式回撥傳遞額外的上下文資訊。此功能允許您提供可在函式執行中使用的額外資料。
在此示例中,我們傳遞了 sessionId
,以便上下文感知到該值。
String content = chatClient.prompt("What's the weather like in San Francisco, Tokyo, and Paris?")
.functions("weatherFunctionWithContext")
.toolContext(Map.of("sessionId", "123"))
.call()
.content();
另請注意,您可以在 prompt
方法中傳遞使用者文字,作為使用 user
方法的替代方案。
ToolContext
可透過使用 java.util.BiFunction 獲取。這是 bean 定義:
@Bean
@Description("Get the weather in location")
public BiFunction<WeatherService.Request, ToolContext, WeatherService.Response> weatherFunctionWithContext() {
return (request, toolContext) -> {
String sessionId = (String) toolContext.getContext().get("sessionId");
// use session id as appropriate...
System.out.println(sessionId);
return new WeatherService().apply(request);
};
}
如果您更喜歡自己處理函式呼叫對話,可以設定 proxyToolCalls
選項。
PortableFunctionCallingOptions functionOptions = FunctionCallingOptions.builder()
.withFunction("weatherFunction")
.withProxyToolCalls(true)
.build();
透過 ChatModel 或 ChatClient 呼叫模型並傳遞這些選項,將返回一個 ChatResponse,其中包含 AI 模型函式呼叫對話開始時傳送的第一個訊息。
在事實評估領域有一些顯著的創新,出現了一個名為 LLM-AggreFact 的新排行榜。目前在基準測試中領先的模型是由 Bespoke Labs 開發的“bespoke-minicheck”。這個模型引人注目的一部分原因是,與 GPT4o 等所謂的“旗艦”模型相比,它更小巧且執行成本更低。您可以在論文“MiniCheck: Efficient Fact-Checking of LLMs of Grounding Documents”中閱讀更多關於該模型背後的研究。
Spring AI FactCheckingEvaluator 基於這項工作,可以與部署在 Ollama 上的 Bespoke-minicheck 模型一起使用。請參閱文件瞭解更多資訊。感謝 Eddú Meléndez 在此領域的工作。
以前,嵌入文件列表需要逐項進行呼叫,效能不高。Spring AI 現在支援將多個文件批次處理,以便在一次模型呼叫中計算多個嵌入。由於嵌入模型有 token 限制,文件會被分組,以確保每個批次不超過嵌入模型的 token 限制。
新的類 TokenCountingBatchingStrategy 考慮了 token 大小,並分配了 10% 的保留緩衝區,因為 token 估算不是精確的科學。您可以自定義實現 BatchingStrategy 介面。
此外,基於 JDBC 的嵌入模型現在可以更容易地自定義執行批次插入時使用的批次大小。
感謝 Soby Chacko 在此領域的工作以及作為 Spring AI 團隊新成員的其他貢獻。
Azure AI
Vertex AI
廣泛的貢獻者進行了大量的重構、bug 修復和文件增強。如果您的 PR 尚未處理,請耐心等待,我們會處理的。感謝: