領先一步
VMware 提供培訓和認證,助您快速進步。
瞭解更多我們很高興宣佈 Spring AI 1.0.0 里程碑 5 版本釋出
像往常一樣,本次釋出包含了一些新功能和 bug 修復,但我們將重點放在從設計角度審查程式碼庫,目標是在 2025 年初發布 GA 版本。雖然我們透過在一個釋出週期內廢棄方法和類來儘量使過渡平穩,但我們知道存在一些破壞性變更,可能還有一些我們不知道的,請大家諒解。請參閱下面的“破壞性變更”部分。
MCP 對於使用 AI 工具和資源構建互動式應用程式具有顛覆性意義。它使您能夠建立快速且靈活的應用程式,利用 AI 處理本地資料以及雲端託管的服務。
雖然目前在 Spring AI 之外孵化,但我們很高興地宣佈實驗性發布 Spring AI MCP 0.20 版本,這是一個用於 Model Context Protocol (MCP) 的 Java SDK。該專案提供了 Java/Spring 應用程式與相容 MCP 的 AI 資源和工具之間的無縫整合。
有關架構和實現的更多詳細資訊,請訪問 Model Context Protocol 文件。可以在我們的 spring-ai-examples 倉庫中找到使用 MCP 與 Spring 的示例。
// Prepare the audio resource
var audioResource = new ClassPathResource("speech1.mp3");
// Create a user message with audio and send it to the chat model
String response = chatClient.prompt()
.user(u -> u.text("What is this recording about?")
.media(MimeTypeUtils.parseMimeType("audio/mp3"), audioResource))
.options(OpenAiChatOptions.builder()
.withModel(OpenAiApi.ChatModel.GPT_4_O_AUDIO_PREVIEW).build())
.call()
.content();
以下是如何從文字生成音訊輸出// Generate an audio response
ChatResponse response = chatClient
.prompt("Tell me a joke about the Spring Framework")
.options(OpenAiChatOptions.builder()
.withModel(OpenAiApi.ChatModel.GPT_4_O_AUDIO_PREVIEW)
.withOutputModalities(List.of("text", "audio"))
.withOutputAudio(new AudioParameters(Voice.ALLOY, AudioResponseFormat.WAV))
.build())
.call()
.chatResponse();
// Access the audio transcript
String audioTranscript = response.getResult().getOutput().getContent();
// Retrieve the generated audio
byte[] generatedAudio = response.getResult().getOutput().getMedia().get(0).getDataAsByteArray();
有關新 RAG 架構和實現細節的全面資訊,請檢視我們更新的文件。如需實踐經驗,請在這些示例應用程式中探索實用的 RAG 實現。
ChatClient
的 Kotlin 支援,帶有型別安全的響應 (#1729)檢視我們的Kotlin 示例,瞭解這些功能的實際應用。
ChatClient
API 的空安全性和可預測性 (#1651)ChatOptions
/FunctionCallingOptions
的繼承層次結構 (#1994)FunctionCallback.Builder
介面 (#1732)BiFunction
類型別解析的支援 (#1588)最明顯的破壞性變更是每個向量儲存實現的包名發生了變化。遺憾的是,它們之前都使用了相同的包名,但位於不同的獨立 artifact 中,這是不允許的。
因此,MilvusVectorStore
已從 org.springframework.ai.vectorstore
移至 org.springframework.ai.vectorstore.milvus
許多類中都對構建器模式的使用進行了對齊,但重點放在了向量儲存和聊天選項上。
MilvusVectorStore vectorStore = MilvusVectorStore.builder(milvusServiceClient, embeddingModel)
.initializeSchema(true)
.build();
其他破壞性變更包括
Document
現在僅支援文字或媒體內容的單個例項。這使得嵌入注入 pipeline 的流程更容易理解。類似地,之前已廢棄的 Document
的嵌入欄位已被移除。(#1883)
更改了 TokenCountBatchingStrategy
建構函式引數 (#1670)
還有許多貢獻者進行了全面的重構、bug 修復和文件增強。如果您的 PR 尚未被處理,我們將盡快處理,請耐心等待。感謝以下貢獻者:
我們在 M5 版本中未能完成所有預期的設計重構,因此將在 2025 年 1 月初發布最後一個 M6 版本來解決這些問題,然後儘快釋出 1.0.0 RC1 和 1.0.0 GA 版本。
設計的重點領域是
對於 Spring AI 來說,這是令人驚歎的一年。我們感謝社群的支援和貢獻。期待 2025 年更加精彩!