Go語言LLM SDK:支持流式傳輸、工具調用的AI後端(附帶React前端庫)
Grafana開源的Go語言AI SDK,兼容Vercel AI SDK設計,支持流式傳輸、工具調用、結構化輸出和多提供商調用(Anthropic、Bedrock、OpenAI等),可與React前端無縫集成。
Grafana 社區近日發佈了一款面向 Go 語言的 AI SDK(軟件開發工具包),旨在為 Go 後端應用提供統一的接口來調用多種大語言模型(LLM)。該 SDK 的設計靈感來源於 Vercel 的 AI SDK,並保持了與之的無線兼容性,使得 Go 後端能夠直接通過 Server-Sent Events (SSE) 流式傳輸數據給 React 前端組件(如 useChat)。這意味着開發者可以複用現有的 AI SDK React 前端,或者直接用 Go 替換 TypeScript 後端,而無需添加協議適配器。
SDK 的核心功能包括 StreamText 和 GenerateText,分別用於流式響應和等待完整結果。它支持重試機制和多步工具執行,允許模型調用 Go 函數,並且可以為關鍵操作設置審批流程。此外,它還支持結構化輸出,能夠生成符合 schema 驗證的對象、數組和選擇。
在多提供商支持方面,SDK 內置了 Anthropic、Amazon Bedrock、OpenAI 及其兼容 API、以及 Grafana 的內部託管端點。開發人員可以通過簡單的模塊選擇切換底層模型。安裝過程非常簡便:只需創建一個 Go 項目,並導入核心模塊和對應提供商的包即可。例如,使用 Anthropic 的 Claude 模型時,設置環境變量 ANTHROPIC_API_KEY 後,調用 GenerateText 函數即可獲得模型的回覆。
SDK 還提供了豐富的文檔和示例,涵蓋全棧聊天應用、結構化輸出、工具調用、代理循環、中間件和生成環境配置等場景。其遵循 Apache License 2.0 開源協議,並採用了與 Vercel AI SDK 一致的設計理念,相關歸屬在 NOTICE 文件中記錄。社區貢獻者可以通過 CONTRIBUTING.md 瞭解開發規範和提交代碼的流程。該 SDK 的發佈為 Go 語言生態中的 AI 應用開發提供了新的選擇,尤其適合需要高性能後端與 React 前端結合的場景。