Repolode
sashabaranov

sashabaranov/go-openai

非官方的 Go 语言 OpenAI API 客户端,无第三方依赖,覆盖 Responses、Chat Completions、图像和音频等接口。

Star
10,805
Fork
1,713
未关闭 Issue
226
最近提交
上个月

这是什么?

go-openai 是一个非官方的 Go 语言 OpenAI API 客户端库。Go 程序可以通过带类型的请求和响应结构体调用 Responses、Chat Completions、Embeddings、图像生成、语音转文字、内容审核、文件、微调、Batch 和向量存储等接口。

库支持流式输出,可自定义 HTTP 客户端和 Base URL,并提供 Azure OpenAI 的配置方式。API 返回的错误可以通过 errors.As 配合 APIError 类型进行检查。包中提供了常用模型的常量,尚未定义常量的新模型也可以直接以字符串形式传入。

新的文本生成和工具调用场景推荐使用 Responses API,已有代码仍可继续使用 Chat Completions。项目附带多轮对话、函数工具、图像生成和语音转文字等可直接运行的示例。

核心功能

  • 01为 Responses、Chat Completions、图像、音频等 OpenAI 接口提供带类型的 Go 结构体。
  • 02支持 Responses 和 Chat Completions 的流式输出。
  • 03可自定义 HTTP 客户端、Base URL、组织信息和请求头。
  • 04提供 Azure OpenAI 的配置辅助方法。
  • 05API 错误以结构化类型返回,可用 errors.As 检查。

适用场景

  • 在 Go 后端服务中接入 OpenAI 文本生成或工具调用能力。
  • 构建边生成边显示输出的流式对话界面。
  • 在 Go 应用中生成图像或转写音频。
  • 通过自定义 Base URL 将 Go 客户端连接到兼容 OpenAI 的接口。

快速上手

  1. 1

    使用 go get 安装该库

    go get github.com/sashabaranov/go-openai
  2. 2

    在环境变量中设置你的 OpenAI API 密钥

    export OPENAI_API_KEY="<your key>"
  3. 3

    运行 examples 目录中的 Responses API 示例

    go run ./examples/responses

使用前须知

  • 这是非官方客户端,并非由 OpenAI 维护。
  • 需要 Go 1.18 或更高版本以及 OpenAI API 密钥。

收录于专题

标签

常见问题

go-openai 是什么?
非官方的 Go 语言 OpenAI API 客户端,无第三方依赖,覆盖 Responses、Chat Completions、图像和音频等接口。 go-openai 是一个非官方的 Go 语言 OpenAI API 客户端库。Go 程序可以通过带类型的请求和响应结构体调用 Responses、Chat Completions、Embeddings、图像生成、语音转文字、内容审核、文件、微调、Batch 和向量存储等接口。
go-openai 可以免费使用吗?用的什么许可证?
go-openai 以 Apache-2.0 许可证开源。用于商业产品前,请先确认许可证条款。
go-openai 还在维护吗?
半年内有更新。go-openai 最近一次提交是在 2026年9月29日。
go-openai 适合用来做什么?
在 Go 后端服务中接入 OpenAI 文本生成或工具调用能力。 构建边生成边显示输出的流式对话界面。 在 Go 应用中生成图像或转写音频。 通过自定义 Base URL 将 Go 客户端连接到兼容 OpenAI 的接口。
go-openai 怎么安装和运行?
使用 go get 安装该库: go get github.com/sashabaranov/go-openai 在环境变量中设置你的 OpenAI API 密钥: export OPENAI_API_KEY="<your key>" 运行 examples 目录中的 Responses API 示例: go run ./examples/responses
在哪里获取 go-openai?
源代码和安装说明在 GitHub 上:https://github.com/sashabaranov/go-openai

概要由 AI 根据项目 README 生成;GitHub 数据每日更新。

相关项目