sashabaranov/go-openai

OpenAI, GPT 6.1, GPT-Image-2, Whisper API clients for Go. Zero-dependency.

这是什么

go‑openai 是 OpenAI API 的非官方 Go 客户端库。它让 Go 程序可以调用开发者在 OpenAI 平台上使用的相同端点——文本生成、聊天、嵌入、图像创建、音频转录、内容审核、文件处理、微调、批处理作业、向量存储辅助工具,以及旧版的 Assistants API。

适合谁使用

  • 想要将 OpenAI 模型集成到服务、CLI 工具或代理中,而不想编写原始 HTTP 请求的 Go 开发者。
  • 正在构建 AI 增强应用(例如聊天机器人、代码助手、RAG 管道)的团队,需要一个类型化、惯用的 Go 包装器。
  • 偏好较新的 Responses API(工具调用、多轮状态),但仍需要向后兼容的 Chat Completion 支持的人。

核心功能(根据 README 所述)

领域 库提供的功能
Responses API CreateResponse、CreateResponseStream;通过 PreviousResponseID 支持多轮对话、流式增量,以及便捷的 GetOutputText 辅助函数。
Chat Completions CreateChatCompletion 用于现有集成;返回与官方 OpenAI 端点相同的形状。
模型选择 最新 GPT‑6 系列的常量(GPT6Dot1Sol、GPT6Astra、GPT6Sol、GPT6Luna)以及所有较早的模型。
嵌入 / 图像 / 音频 调用对应 OpenAI 端点的辅助方法(例如图像生成、语音转文本)。
微调、批处理、向量存储 这些 API 表面的轻量包装器,方便启动训练作业或管理向量数据。
Azure OpenAI 支持 DefaultAzureConfig 让您可以将客户端指向 Azure 托管的 OpenAI 端点,并包含所需的部署映射。
自定义 HTTP 配置 DefaultConfig 让您可以更改基础 URL、标头,或替换底层 HTTP 客户端(适用于代理、测试或自托管兼容服务器)。
错误处理 错误被类型化为 *openai.APIError;您可以通过 errors.As 检查 HTTP 状态、错误代码和消息。
示例 一组可运行的示例,涵盖响应、聊天、函数工具、图像生成和语音转文本。

如何开始(README 中的快速步骤)

  1. 安装:go get github.com/sashabaranov/go-openai(需要 Go 1.18+)。
  2. 在环境中设置 API 密钥:export OPENAI_API_KEY="..."。
  3. 创建客户端:
    client := openai.NewClient(os.Getenv("OPENAI_API_KEY"))
    
  4. 发出请求——例如,使用新的 Responses API 的简单响应:
    resp, err := client.CreateResponse(context.Background(), openai.CreateResponseRequest{
        Model:        openai.GPT5Dot6Sol,
        Instructions: "You are a concise technical explainer.",
        Input:        "Why is the sky blue?",
    })
    if err != nil { log.Fatal(err) }
    fmt.Println(resp.GetOutputText())
    
  5. 探索 examples/ 文件夹,以了解更复杂的用例,例如流式、多轮对话或图像生成。

何时可能选择其他方案

  • 如果您需要官方、由 OpenAI 维护的 SDK(官方 Go SDK 仍在测试阶段),您可能偏好该 SDK 以保证版本一致性。
  • 对于非常轻量的脚本,引入完整客户端可能过于沉重,简单的 net/http 调用可能就足够了。

社区与维护

  • 该项目是开源的,带有 Go 参考和代码覆盖率的 CI 徽章。
  • 欢迎贡献;请参阅 CONTRIBUTING.md 以了解指南。
  • 赞助者和贡献者列在 README 中,显示活跃的社区支持。

以上所有信息直接取自存储库的 README;未添加任何外部假设。

相关

  • 项目
  • 项目
  • 项目
  • 项目
  • 项目