返回

文章详情

Go LLM SDK用于流式处理、调用AI后端工具(加上前端React库)

Hacker News2026年7月30日 11:55

为什么SDK为Go应用程序提供了一个API,用于模型调用、流式传输、工具、结构化输出和多步代理,支持多个提供者。它遵循Vercel的AI SDK的设计,并与其TypeScript前端钩子保持兼容。Go端点可以直接将服务器发送事件(SSE)流式传输到如useChat等钩子。Go后端React前端 ────────── ────────────── aisdk.StreamText(...) ── SSE ──▶ useChat({ transport }) aisdk.WriteUIMessageStream(w, …) // 相同协议 参见请求生成、工具和流式传输流程是如何运行的。重用现有的AI SDK React前端或在不添加协议适配器的情况下用Go替换TypeScript后端。 特性 StreamText / GenerateText —流式响应或等待完整结果,支持重试和多步工具执行 React兼容性 —支持useChat、useCompletion和useObject 可组合工具 —从模型调用普通Go函数,并对重要操作要求批准 结构化输出 —生成架构验证的对象、数组和选择 多个提供者 —从内部服务调用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是必需的" ) } model := anthropic . New ( apiKey , "claude-sonnet-5" ) result , err := aisdk . GenerateText ( context . Background (), model , aisdk . WithModelMessages ( provider . UserText ( "用一句话解释goroutines。" )), ) 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 贡献 欢迎贡献。 CONTRIBUTING.md涵盖开发设置、使此存储库不同寻常的两种约定——与Vercel AI SDK的上游一致性和基于规格的开发,并提供拉取请求检查表。所有参与者遵循我们的行为准则。 许可证 Apache许可证2.0。此SDK遵循Vercel的AI SDK的设计,也同样采用Apache-2.0许可;归属在NOTICE中记录。

赞助内容

NordVPN Next-gen Antivirus

本站免费、广告极少。如果觉得有帮助,可以请我们喝杯咖啡 —— 任何金额都对持续运营有实际帮助。

请我喝杯咖啡