Go LLM SDK:面向流式、工具调用AI后端的统一接口(附带前端React库)
摘要
Grafana 发布了一款面向 Go 语言的 AI SDK,提供统一的 API 用于 LLM 调用、流式传输、工具执行及结构化输出,并内置与 Vercel 的 AI SDK React 前端的兼容性。
查看缓存全文
缓存时间: 2026/07/30 13:49
grafana/ai-sdk
源码:https://github.com/grafana/ai-sdk
从 Go 调用语言模型、流式响应、执行工具,以及提供 AI 驱动的 API。可单独使用 SDK,也可搭配 AI SDK React 前端使用。
快速入门 · 文档 · 示例 · API 参考 (https://pkg.go.dev/github.com/grafana/ai-sdk)
为什么使用
SDK 为 Go 应用提供统一的 API,支持跨多个提供商的模型调用、流式传输、工具调用、结构化输出和多步骤智能体。它的设计遵循 Vercel AI SDK (https://ai-sdk.dev) 的架构,并与 TypeScript 前端 hooks 保持有线兼容。Go 端点可以直接通过 Server-Sent Events (SSE) 向 useChat 等 hooks 推送流。
Go 后端 React 前端
────────── ──────────────
aisdk.StreamText(...) ── SSE ──▶ useChat({ transport })
aisdk.WriteUIMessageStream(w, ...) // 相同协议
关于生成、工具和流式传输的流程,请参阅 请求如何运行。可复用现有的 AI SDK React 前端,或用 Go 替换 TypeScript 后端而无需添加协议适配器。
功能
StreamText/GenerateText— 流式传输响应或等待完整结果,支持重试和多步骤工具执行- React 兼容性 — 支持
useChat、useCompletion和useObject - 可组合工具 — 让模型调用 Go 函数,并对重要操作要求审批
- 结构化输出 — 生成符合 schema 验证的对象、数组和选择
- 多个提供商 — 调用 Anthropic、Amazon Bedrock、OpenAI、兼容 OpenAI 的 API,以及来自内部服务的 Grafana 托管端点
- 生产控制 — 配置超时、回退、日志、Prometheus 指标和智能体可观测性
安装
创建一个 Go 项目并安装核心模块和一个提供商:
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 的 API 以及内部配置的 Grafana 托管端点,请参阅选择提供商。
快速入门
将以下完整程序保存为 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 密钥运行:
ANTHROPIC_API_KEY=sk-... go run .
关于项目初始化和凭据指导,请参阅安装。要将会话流式传输到 React 客户端,请继续阅读构建全栈聊天。
下一步
| 目标 | 从这里开始 |
|---|---|
| 从 Go 调用模型 | 从 Go 生成文本 |
| 构建 React 聊天 | 全栈聊天 |
| 返回类型化数据 | 结构化输出 |
| 让模型调用 Go 代码 | 工具 |
| 构建可复用智能体 | 智能体循环 |
| 选择模型提供商 | 提供商概览 |
| 添加日志或可观测性 | 中间件概览 |
| 准备生产环境 | 生产检查清单 |
完整索引:文档 · 可运行代码:示例 · 精确 API:pkg.go.dev (https://pkg.go.dev/github.com/grafana/ai-sdk)
贡献
欢迎贡献。CONTRIBUTING.md 涵盖了开发设置、使本仓库与众不同的两个约定——与 Vercel AI SDK 保持上游一致,以及通过 OpenSpec 进行规范驱动开发——以及 Pull Request 检查清单。所有参与者均遵守我们的行为准则。
许可
Apache License 2.0。
本 SDK 遵循 Vercel AI SDK (https://github.com/vercel/ai) 的设计(同样基于 Apache-2.0 许可);归属信息记录在 NOTICE 中。
相似文章
@ggerganov:llama.cpp 现在有了官方网站:https://llama.app 我们的目标是让本地 AI 人人可用,并改善…
llama.cpp,广受欢迎的本地 AI 推理工具,现在有了官方网站(llama.app),提供跨平台安装程序和更好的用户体验,让本地 AI 更易于使用。
代理工作流可视化与API网关
正在构建一个用于代理AI工作流的开源API网关,提供多LLM和工具调用的可视化,跟踪令牌、成本和延迟,无需代码插桩。采用Rust和Go服务器配合Python关联器,寻求AI运维用户的合作与反馈。
Show HN: GoModel – 开源 Go 语言 AI 网关,体积仅为 LiteLLM 的 1/44
GoModel 是一款用 Go 编写的全新开源 AI 网关,提供统一的 OpenAI 兼容 API,支持多家模型提供商,宣称体积比 LiteLLM 小 44 倍。
大语言模型与本地AI硬件的推理引擎(2026版)
本文提供了一份全面的指南,针对2026年本地AI硬件上的大语言模型推理引擎,解释了如何根据硬件策略、工作负载和服务模型进行选择,并涵盖了诸如llama.cpp、MLX、ExLlamaV2/3、vLLM、SGLang、TensorRT-LLM和NVIDIA Dynamo等引擎。
@gp_pulipaka: Ollama vs. LM Studio vs. llama.cpp:2026年你应该使用哪个本地AI运行时?#BigData #Analytics #DataScience #AI…
详细对比了三种本地AI运行时——Ollama、LM Studio和llama.cpp,从界面、API兼容性、量化控制等方面帮助从业者根据自己的工作流程选择合适的工具。