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)を呼び出せるようにします。

対象者

  • 生の HTTP リクエストを書かずに OpenAI モデルをサービス、CLI ツール、またはエージェントに統合したい 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 はまだベータ版)、バージョン整合性を保証するためにそちらを好むかもしれません。
  • 非常に軽量なスクリプトで、完全なクライアントを導入するのが重いと感じる場合、単純な net/http 呼び出しで十分かもしれません。

コミュニティとメンテナンス

  • このプロジェクトはオープンソースで、Go リファレンスとコードカバレッジの CI バッジがあります。
  • 貢献は歓迎されています;ガイドラインは CONTRIBUTING.md を参照してください。
  • スポンサーと貢献者は README にリストされており、活発なコミュニティサポートを示しています。

上記のすべての情報は、リポジトリの README から直接取得したものです;外部の仮定は追加されていません。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト