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 前端结合的场景。