領先一步
VMware 提供培訓和認證,助您加速進步。
瞭解更多我們很高興地宣佈 Spring AI 1.0.0 里程碑 3 版本釋出。
本次釋出在各個領域帶來了重要的增強和新功能。
此版本對可觀測性堆疊進行了許多改進,特別是針對 Chat Models 的流式響應。非常感謝 Thomas Vitale 和 Dariusz Jedrzejczyk 在此方面提供的所有幫助!
可觀測性涵蓋 ChatClient、ChatModel、Embedding Models 和 Vector stores,使您能夠以精細的粒度檢視與 AI 基礎設施的所有接觸點。
在 M2 版本中,我們為 OpenAI、OIlama、Mistral 和 Anthropic 模型引入了可觀測性支援。現在,我們已將其擴充套件到包括對以下模型的支援:
感謝 Geng Rong 為中文模型實現了可觀測性。
您可以在 可觀測性參考文件 中找到有關可用指標和跟蹤的更詳細資訊。以下是一些圖表,用於演示其功能。


Spring AI Advisors 是攔截並可能修改 AI 應用程式中聊天補全請求和響應流程的元件。Advisors 還可以透過不呼叫鏈中的下一個 advisor 來阻止請求。
此係統中的關鍵角色是 AroundAdvisor,它允許開發人員動態地轉換或利用這些互動中的資訊。
使用 Advisors 的主要好處包括:
我們重新審視了 Advisor API 模型,進行了許多設計更改,並改進了其應用於流式請求和響應的能力。您還可以使用 Spring 的 Ordered 介面顯式定義 advisor 的順序。
根據您使用 API 的情況,可能會有一些重大更改,請參閱文件以瞭解更多詳細資訊。
圍繞 advisor 的流程如下圖所示。
您可以閱讀 Christian Tzolov 最近的部落格 Supercharging Your AI Applications with Spring AI Advisors 以獲取更多詳細資訊。
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 現在支援將多個文件批次處理,從而可以在一次模型呼叫中計算多個嵌入。由於嵌入模型存在令牌限制,文件會被分組,以確保每個批次不超過嵌入模型的令牌限制。
新的 TokenCountingBatchingStrategy 類會考慮令牌大小並分配 10% 的預留緩衝區,因為令牌估算並非精確科學。您可以自定義 BatchingStrategy 介面的實現。
此外,基於 JDBC 的嵌入模型現在可以更輕鬆地自定義批次插入時使用的批次大小。
感謝 Soby Chacko 在該領域的工作以及作為 Spring AI 團隊新成員的其他貢獻。
Azure AI
Vertex AI
在廣大貢獻者的努力下,在各個方面進行了大量的重構、錯誤修復和文件增強。如果我們還沒有處理到您的 PR,我們會盡快處理,請耐心等待。感謝