OSCHINA
Spring AI 1.0 已正式 GA,隨之發(fā)布的還有一首新歌以及新 Logo。
https://suno.com/s/b0y64IKfpE5m3akD
Spring AI 是面向 AI 工程的 Java 應(yīng)用框架,其目標(biāo)是將 Spring 生態(tài)的設(shè)計原則(如可移植性和模塊化設(shè)計)應(yīng)用于人工智能領(lǐng)域,并推廣使用 POJO
Plain Ordinary Java Object)作為人工智能領(lǐng)域應(yīng)用程序的構(gòu)建模塊。
Spring AI 的核心是ChatClient
,一種可移植且易于使用的 API,是與 AI 模型交互的主要接口。
Spring AIChatClient
支持調(diào)用20 種AI 大模型,從 Anthropic 到 ZhiPu。它支持多模態(tài)輸入和輸出(需要底層模型具備相關(guān)能力)以及結(jié)構(gòu)化響應(yīng) —— 通常以 JSON 格式呈現(xiàn),以便于在應(yīng)用程序中處理輸出。
要構(gòu)建高效的 AI 應(yīng)用程序,一系列支持功能至關(guān)重要。
Advisors
增強型 LLM (Augmented LLM)(如下圖所示)正是為此而生,它為基礎(chǔ)模型添加了數(shù)據(jù)檢索、對話記憶和工具調(diào)用等功能。這些功能允許開發(fā)者將自己的數(shù)據(jù)和外部 API 直接引入模型的推理過程。
在 Spring AI 中實現(xiàn)此模式的關(guān)鍵是Advisor。
Spring AI ChatClient 的一個關(guān)鍵特性是 Advisor API。這是一個攔截器鏈,支持通過注入檢索數(shù)據(jù)和對話內(nèi)存來修改傳入的提示詞。
Retrieval
Spring AI 還提供了一個可移植的向量存儲抽象,支持從 Azure Cosmos DB 到 Weaviate 的20 種不同的向量數(shù)據(jù)庫。
Spring AI 包含一個輕量級、可配置的 ETL(提取、轉(zhuǎn)換、加載)框架,可簡化將數(shù)據(jù)導(dǎo)入向量存儲的過程。它通過可插拔的 DocumentReader 組件支持多種輸入源,包括本地文件系統(tǒng)、網(wǎng)頁、GitHub 倉庫、AWS S3、Azure Blob Storage、Google Cloud Storage、Kafka、MongoDB 和兼容 JDBC 的數(shù)據(jù)庫。
Retrieval(檢索)
通過內(nèi)置的分塊、元數(shù)據(jù)豐富和嵌入生成支持,可以輕松地將幾乎任何地方的內(nèi)容引入 RAG 管道。
Spring AI 還廣泛支持檢索增強生成 (RAG) 模式,該模式使 AI 模型能夠根據(jù)傳遞給它的數(shù)據(jù)來進(jìn)行響應(yīng)。
可以從簡單的QuestionAnswerAdvisor
開始,為提示詞注入相關(guān)上下文,或者使用RetrievalAugmentationAdvisor
擴(kuò)展到更復(fù)雜的模塊化 RAG 管道,為你的應(yīng)用量身定制。
Memory(內(nèi)存)
對話歷史記錄是創(chuàng)建 AI 聊天應(yīng)用程序的重要組成部分。
Spring AI 通過ChatMemory
接口支持該特性,該接口可管理消息的存儲和檢索。MessageWindowChatMemor
實現(xiàn)在一個滑動窗口中保存最近的 N 條消息,并隨著對話的進(jìn)行不斷更新。它委托給一個ChatMemoryRepository
,目前為 JDBC、Cassandra 和 Neo4j 提供了存儲庫實現(xiàn),更多實現(xiàn)即將推出。
另一種方法是使用VectorStoreChatMemoryAdvisor
。它不僅僅記住最新消息,還使用向量搜索從過去的對話中檢索語義最相似的消息。
Tools(工具)
Spring AI 可以通過 tools(讓 AI 檢索外部信息或采取實際行動的自定義函數(shù))輕松擴(kuò)展模型的功能。
Tools 可以獲取當(dāng)前天氣、查詢數(shù)據(jù)庫或返回最新消息,幫助模型回答訓(xùn)練數(shù)據(jù)之外的問題。它們還可以觸發(fā)工作流、發(fā)送電子郵件或更新系統(tǒng) —— 使模型成為應(yīng)用程序的積極參與者。
Evaluation(評估)
Spring AI 可以輕松檢查 AI 生成內(nèi)容的準(zhǔn)確性和相關(guān)性。它配備了靈活的Evaluator
界面和兩個方便易用的內(nèi)置評估器:
RelevancyEvaluator
幫助確定 AI 的響應(yīng)是否與用戶的問題和檢索到的上下文真正匹配。它非常適合測試 RAG 流程,并使用可自定義的提示來詢問另一個模型:“根據(jù)檢索到的內(nèi)容,這個響應(yīng)是否合理?”
FactCheckingEvaluator
根據(jù)提供的上下文驗證 AI 的響應(yīng)是否符合事實。它的工作原理是要求模型判斷某個語句是否在邏輯上得到文檔的支持。可以使用 Bespoke 的 Minicheck(通過 Ollama)等小型模型來運行此模型,這比每次檢查都使用 GPT-4 之類的工具要便宜得多。
Observability(可觀測性)
Spring AI 可以輕松觀察模型的運行情況、性能以及成本。
Spring AI 與Micrometer集成,提供有關(guān)關(guān)鍵指標(biāo)的詳細(xì)遙測,例如:
模型延遲
你的模型需要多長時間才能做出反應(yīng)(不僅僅是情感上的)。
token使用情況
每個請求的輸入 / 輸出 token,因此可以跟蹤和優(yōu)化成本。
工具調(diào)用和檢索
了解你的模型何時充當(dāng)有用的助手,而不是僅僅在向量存儲上免費加載。
還可以通過 Micrometer Tracing獲得全面的跟蹤支持,其中包含模型交互中每個主要步驟的跨度。可以獲取有助于故障排除的日志消息,以便查看用戶提示或向量存儲響應(yīng)的內(nèi)容。
MCP
Spring AI 團(tuán)隊在 MCP 規(guī)范發(fā)布后不久就開始支持該規(guī)范,并將這些代碼捐贈給 Anthropic 作為 MCP Java SDK 的基礎(chǔ)。Spring AI 圍繞此基礎(chǔ)提供了豐富的功能。
Spring AI 通過其客戶端啟動模塊,簡化了 MCP 工具的使用。添加`spring-ai-starter-mcp-client`依賴項,即可快速連接遠(yuǎn)程 MCP 服務(wù)器。
Spring Boot 的自動配置功能可處理繁重的工作,因此你的客戶端無需過多的樣板代碼即可調(diào)用 MCP 服務(wù)器公開的工具,讓你專注于構(gòu)建高效的 AI 工作流。Spring 讓你可以輕松連接到 MCP 服務(wù)器提供的 stdio 和基于 HTTP 的 SSE 端點。
Spring AI 還簡化了 MCP 服務(wù)器的創(chuàng)建。只需添加spring-ai-starter-mcp-server
依賴項,即可快速將 Spring 組件轉(zhuǎn)換為符合 MCP 標(biāo)準(zhǔn)的服務(wù)器。
Spring AI 支持多種構(gòu)建代理行為的工作流模式:
Evaluator Optimizer
該模型分析自身的反應(yīng),并通過結(jié)構(gòu)化的自我評估過程對其進(jìn)行改進(jìn)。
Routing
此模式能夠根據(jù)用戶請求和上下文的分類將輸入智能路由到專門的處理程序。
Orchestrator Workers
這種模式是一種靈活的方法,用于處理需要動態(tài)任務(wù)分解和專門處理的復(fù)雜任務(wù)
Chaining
該模式將復(fù)雜的任務(wù)分解為一系列步驟,其中每個 LLM 調(diào)用都會處理前一個調(diào)用的輸出。
Parallelizatio
該模式對于需要并行執(zhí)行 LLM 調(diào)用并自動進(jìn)行輸出聚合的情況很有用。
這些模式可以使用 Spring AI 的聊天模型和工具執(zhí)行功能來實現(xiàn),其中框架可以處理大部分底層復(fù)雜性。Spring AI 還支持通過 MCP 開發(fā)自主代理。
更多詳情查看官方公告
https://spring.io/blog/2025/05/20/spring-ai-1-0-GA-released
特別聲明:以上內(nèi)容(如有圖片或視頻亦包括在內(nèi))為自媒體平臺“網(wǎng)易號”用戶上傳并發(fā)布,本平臺僅提供信息存儲服務(wù)。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.