Grafana 开源 Go LLM SDK,支持流式与工具调用
Grafana 发布 Go LLM SDK 支持流式输出和函数调用,配套 React 前端库,降低 AI 应用开发门槛。
Grafana 发布 Go LLM SDK 支持流式输出和函数调用,配套 React 前端库,降低 AI 应用开发门槛。
调用语言模型、流式传输响应、执行工具,并使用 Go 提供 AI 驱动的端点。你既可以单独使用这个 SDK,也可以搭配 AI SDK React 前端使用。
快速开始 · 文档 · 示例 · API 参考
这个 SDK 为 Go 应用提供了一套统一 API,可用于模型调用、流式传输、工具调用、结构化输出,以及跨受支持 provider 的多步骤 Agent。它沿用了 Vercel AI SDK 的设计,并与其 TypeScript 前端 hooks 保持传输协议兼容。Go 端点可以通过 Server-Sent Events(SSE),直接向 useChat 等 hooks 流式传输数据。
Go backend React frontend
────────── ──────────────
aisdk.StreamText(...) ── SSE ──▶ useChat({ transport })
aisdk.WriteUIMessageStream(w, …) // same protocol
关于生成、工具调用和流式传输的完整流程,请参阅「请求如何运行」。你可以复用现有的 AI SDK React 前端,也可以直接用 Go 替换 TypeScript 后端,而无须额外添加协议适配器。
StreamText / GenerateText —— 流式传输响应,或等待完整结果返回;支持重试和多步骤工具执行
React 兼容性 —— 为 useChat、useCompletion 和 useObject 提供服务
可组合工具 —— 让模型调用普通 Go 函数,并要求对可能造成重大影响的操作进行审批
结构化输出 —— 生成经过 schema 校验的对象、数组和选项
多 provider 支持 —— 从内部服务调用 Anthropic、Amazon Bedrock、OpenAI、OpenAI-compatible APIs,以及 Grafana 托管端点
生产环境控制 —— 配置超时、fallback、日志、Prometheus metrics 和 Agent Observability
创建一个 Go 项目,并安装核心模块和一个 provider:
mkdir ai-sdk-quickstart
cd ai-sdk-quickstart
go mod init example.com/ai-sdk-quickstart
go get github.com/grafana/ai-sdk
go get github.com/grafana/ai-sdk/providers/anthropic
关于 Amazon Bedrock、OpenAI、OpenAI-compatible APIs,以及内部预配置的 Grafana 托管端点,请参阅「选择 provider」。
将下面这个完整程序保存为 main.go。它会调用一次模型并打印响应:
package main
import (
"context"
"fmt"
"log"
"os"
aisdk "github.com/grafana/ai-sdk"
"github.com/grafana/ai-sdk/provider"
"github.com/grafana/ai-sdk/providers/anthropic"
)
func main() {
apiKey := os.Getenv("ANTHROPIC_API_KEY")
if apiKey == "" {
log.Fatal("ANTHROPIC_API_KEY is required")
}
model := anthropic.New(apiKey, "claude-sonnet-5")
result, err := aisdk.GenerateText(context.Background(), model,
aisdk.WithModelMessages(provider.UserText("Explain goroutines in one sentence.")),
)
if err != nil {
log.Fatal(err)
}
fmt.Println(result.Text)
}
使用 Anthropic API key 运行程序:
ANTHROPIC_API_KEY=sk-... go run .
关于项目初始化和凭证配置,请参阅「安装」。如果要将响应流式传输到 React 客户端,请继续阅读「构建全栈聊天应用」。
完整索引:文档 · 可运行代码:示例 · 精确 API:pkg.go.dev
欢迎贡献。CONTRIBUTING.md 介绍了开发环境配置、本仓库与众不同的两项约定——与 Vercel AI SDK 保持上游一致,以及通过 OpenSpec 进行规范驱动开发——并提供了 pull request 检查清单。所有参与者均须遵守我们的《行为准则》。
采用 Apache License 2.0。本 SDK 沿用了 Vercel AI SDK 的设计,后者同样采用 Apache-2.0 许可证;相关署名记录在 NOTICE 中。