openai-go

官方 Go SDK,类型安全调用 OpenAI 接口

开源 🏷️完全免费 🔧 仅开源项目,无在线服务,需自行部署 开发框架 🍴 复刻 357 🐛 待处理 103 👀 关注 30
GitHub ↗
GitHub 星标 ★ 3505
维护状态 活跃
是否开源 开源
定价模式 🏷️完全免费 开源免费,调用 OpenAI API 需按量付费

项目预览

openai-go 项目界面预览图
图片来源:GitHub 官方仓库名片

项目数据

分类开发框架
开发团队openai
定价模式🏷️完全免费
价格说明开源免费,调用 OpenAI API 需按量付费
访问状态🔧 仅开源项目,无在线服务,需自行部署
是否开源是
开源协议Apache-2.0
主要语言Go
GitHub 星标★ 3505
上线时间2024-07-22 00:00:00
代码更新2026-10-23
仓库体积17.6 MB
本站数据更新2026-10-26
维护状态活跃
收录时间2026-10-26
浏览次数0

项目介绍

openai-go 是 OpenAI 官方维护的 Go 语言 SDK,用于在 Go 服务中调用 OpenAI API。它解决的是 Go 开发者需要自行封装 HTTP 请求、鉴权、重试、流式响应和错误处理的问题。核心能力包括:覆盖 Chat Completions、Responses、Embeddings、Images、Audio、Files、Batch 等接口的类型化客户端;内置请求参数与响应结构体,减少手写 JSON 映射;支持流式输出(SSE)与上下文取消;提供可配置的 HTTP Client、超时、重试与中间件机制;统一的 APIError 错误类型便于分类处理。项目由官方维护,接口随平台更新同步,适合构建聊天机器人、内容生成、语义检索、批量推理等后端服务。

Star 增长趋势

本站每日记录该项目 GitHub 星标变化,观测越久曲线越完整

数据来源:GitHub API 逐日快照 · 收录于 2026-10-26 · 当前星标 ★ 3505

使用教程

难度:入门 约 10 分钟 部署方式:库/依赖 5 步

环境要求

  • Go 1.26 或更高版本,建议使用 1.26.9 / 1.27.2 及以上的补丁版本
  • 需要能够调用 OpenAI API 的网络环境
  • 准备一个 OpenAI API Key,SDK 默认读取环境变量 OPENAI_API_KEY

安装与启动步骤

  1. 1确认 Go 版本

    先确认本机 Go 版本,低于 1.26 需先升级工具链,否则无法使用最新 SDK。

    go version
  2. 2安装 SDK 依赖

    在项目模块中拉取 v3.86.0,README 建议固定版本以免自动升级引入变更。

    go get -u 'github.com/openai/openai-go/v3@v3.86.0'
  3. 3设置 API Key

    把密钥写入环境变量,代码未显式传参时客户端会读取该变量。

    export OPENAI_API_KEY="sk-xxxxxxxx"
  4. 4编写示例程序

    新建 main.go,导入 /v3 包,用 Responses.New 发送一句话并打印返回文本。

    package main
    
    import (
    	"context"
    
    	"github.com/openai/openai-go/v3"
    	"github.com/openai/openai-go/v3/option"
    	"github.com/openai/openai-go/v3/responses"
    )
    
    func main() {
    	ctx := context.Background()
    	client := openai.NewClient(
    		option.WithAPIKey("sk-xxxxxxxx"), // defaults to os.LookupEnv("OPENAI_API_KEY")
    	)
    
    	question := "Write me a haiku about computers"
    
    	resp, err := client.Responses.New(ctx, responses.ResponseNewParams{
    		Input: responses.ResponseNewParamsInputUnion{OfString: openai.String(question)},
    		Model: openai.ChatModelGPT5_2,
    	})
    
    	if err != nil {
    		panic(err)
    	}
    
    	println(resp.OutputText())
    }
  5. 5运行示例

    在包含 main.go 的模块目录执行,首次运行会自动下载依赖并编译。

    go run main.go

关键配置

配置项必填说明示例
OPENAI_API_KEY是OpenAI API 密钥,客户端默认从该环境变量读取sk-xxxxxxxx
Model是请求参数中的模型常量,示例使用 GPT-5.2 对应常量openai.ChatModelGPT5_2

如何确认成功

运行后没有触发 panic,并打印出模型返回的俳句文本,即表示调用成功。

常见问题

Q:Go 版本低于 1.26 怎么办?

A:Go 1.25 可固定 SDK v3.74.0,Go 1.22–1.24 可固定 v3.44.0,但这些版本不再保证修复与安全回补,建议升级 Go 工具链。

Q:必须手动传入 API Key 吗?

A:不是。不传 option.WithAPIKey 时,客户端默认读取环境变量 OPENAI_API_KEY。

Q:如何实现多轮对话?

A:把上一轮响应的 ID 作为 PreviousResponseID 传入;也可先创建 Conversation,再在请求中引用该 ID 持续对话。

Q:如何获得流式输出?

A:使用 client.Responses.NewStreaming,循环调用 stream.Next() 读取增量,结束后检查 stream.Err() 并关闭流。

Q:升级到最新版要注意什么?

A:最新版存在少量破坏性变更,升级前请阅读仓库 CHANGELOG.md 对照修改。

注意事项

  • 示例固定使用 v3.86.0,生产项目建议显式锁定 SDK 版本。
  • HTTP/2 安全修复需要 Go 1.26.9、1.27.2 或更高补丁版本。
  • 旧版 SDK 不再获得保证修复与安全回补,长期使用应升级工具链。

核心亮点

  • 官方维护,接口随平台版本同步更新,兼容性有保障
  • 请求与响应均为强类型结构体,编译期即可发现字段错误
  • 内置流式响应、重试、超时和统一错误类型,减少样板代码

不足之处

  • 仅覆盖 OpenAI 平台,切换其他模型服务商需另做适配
  • 高级用法与自定义中间件文档相对简略,示例偏基础

适用场景

  • Go 后端服务集成对话与文本生成能力
  • 构建语义检索与向量化流水线
  • 批量任务与文件上传等平台能力调用

替代项目

go-openai、langchaingo

上一篇:openai-dotnet

下一篇:openai-java

同类项目推荐

TorchUMM 开源

一套工具包搞定多模态模型训练与评测

A unified multimodal model toolkit (NeurIPS'26)

★ 567 2026-10-18
codebase-context 开源

给 AI 装上代码库记忆,少烧 token 多写对码

Codebase Context gives AI agents understanding of your codebase through semantic cod···

★ 66 2026-08-09
ai-microcore 开源

轻松调用大模型,快速搭建 AI 应用

A handy lib for smooth interaction with large language models (LLMs) and crafting AI···

★ 108 2026-08-09
code-context-engine 开源

索引代码库,让 AI 搜索而非读文件,省 94% token。

Save 94% on AI coding tokens. Index your codebase, agents search instead of reading ···

★ 438 2026-08-09
PromptingTools.jl 开源

Julia 里几行代码调用大模型,提示词管理一步到位

Streamline your life using PromptingTools.jl, the Julia package that simplifies inte···

★ 175 2026-10-05
PocketFlow 开源

百行代码搭出 AI 骨架,小白也能看懂

Pocket Flow: 100-line LLM framework. Let Agents build Agents!

★ 11278 2026-08-09
reverse-check 开源

浏览器里直接测 LLM 接口,免装后端秒出结果

Pure Front-End LLM API Testing Tool

★ 86 2026-08-09
guild 开源

让多个 AI 编码代理共享记忆和任务,不再各干各的

Shared context, memory, and task coordination across AI coding agents. Single Go bin···

★ 302 2026-10-06
llm-extension-for-cmd-pal 开源

在 PowerToys 命令面板里直接召唤 AI,键盘党秒变效率大师

An LLM extension for PowerToys Command Palette

★ 80 2026-08-09