Skip to content

Latest commit

 

History

History
285 lines (202 loc) · 23.7 KB

File metadata and controls

285 lines (202 loc) · 23.7 KB
GPT-Load

GPT-Load

マルチチャネル・マルチ認証情報向けのセルフホスト AI ゲートウェイ

API キー、サブスクリプションアカウント、トラフィック制御、障害処理、リクエストログ、使用量集計を一つの入口にまとめます。

English · 中文 · 日本語 | 公式サイト

Release Docker Go License

tbphp/gpt-load | Trendshift Featured|HelloGitHub


スポンサー

スポンサーになる

スポンサー詳細(折りたたみ可能)
OfoxAI OfoxAI:テキスト・画像・動画 AI を一つのプラットフォームで
OfoxAI は、複数のプロバイダーのテキスト・画像・動画モデルを集約する AI API プラットフォームです。OpenAI 互換 API と Anthropic・Gemini のネイティブ API に対応。開発者は一つのプラットフォームから AI アプリ、エージェント、コンテンツ制作向けのモデルを利用し、タスクに合った機能を選べます。 OfoxAI のモデルと API を見る →
PackyCode PackyCode
PackyCode は、安定性と効率性を重視した AI API 中継サービスです。ひとつの API エンドポイントと API キーで主要な大規模モデルに接続できます。統一ドメイン、統一キー、スマートな障害切り替えに対応し、可用性は 97% としています。人民元で 1:1 チャージでき、為替差損や追加手数料の心配はありません。新規ユーザーは初回チャージ割引と $1 の無料体験クレジットを受け取れ、複数グループでは最大 80% の割引、Codex/Claude Code 専用の高速ルートも利用できます。リンクから登録して、すぐに利用を開始できます。
Fluxion AI 一つの入口で、世界の主要AIモデルに接続・管理
Fluxion AIは、個人開発者、技術チーム、企業向けに、統一APIで世界の主要AIモデルへの接続と管理を提供します。複数経路の動的なスケジューリングで可用性を高め、モデルの性能、応答時間、料金を透明に確認できます。モデルや経路によっては、API利用料を公式価格または基準価格より40%〜98%抑えられます。今すぐアクセスして登録すると、$7分のAPIクレジットを受け取れます。(専用リンク)
AxisNow ウェブサイトと API を保護・高速化し、中国本土および世界各地のアクセス体験にも配慮し、クライアント SDK を通じて高速化とセキュリティの機能をネイティブ/モバイルアプリにまで拡張します — 自社構築・プライベート運用 CDN|サブスクリプション型高防御 CDN|自主的に制御でき、柔軟に組み合わせられる CDN ネットワーク。
APIMart APIMartによる本プロジェクトへのスポンサー支援に感謝します!APIMartはAI画像・動画生成に特化した低価格APIプラットフォームで、GPT-Image-2は1枚$0.006から、1ドルで160枚以上の画像を生成できます。画像と動画の両方に対応する1つの非同期APIで、タスクを送信してIDを取得し、ポーリングまたはコールバックで結果を取得できます。数万枚規模の一括処理でもタイムアウトせず、モデルを切り替えてもコードを変更する必要はありません。従量課金制で月額料金は不要です。こちらの登録リンクから登録して、すぐにご利用いただけます。

GPT-Load を選ぶ理由

アプリケーション側で必要なのは、一つの Base URL と一つの AccessKey だけです。プロバイダー、アカウント、認証情報、モデル、ルーティングポリシーはすべて管理画面で設定します。

GPT-Load の統合アクセスとアップストリームルーティング構成図

  • 単一ゲートウェイでネイティブプロトコルを維持 — 公式 API、クラウド基盤、モデルサービス、互換中継を一元管理しながら、クライアントは OpenAI、Anthropic、Gemini のネイティブインターフェイスをそのまま使えます。
  • API キーとサブスクリプションを統一管理 — Codex、Claude、Antigravity、Grok と API キーチャネルで、認証情報管理・スケジューリング・健全性管理を共通化します。
  • スケジューリングと障害分離を内蔵 — 複数認証情報のスケジューリング、設定可能なウェイト、リトライ、クールダウン、ブラックリスト、セッションアフィニティにより、過負荷や失効の影響を抑えます。
  • 可観測で導入しやすく、データを自己管理 — 健全性、ルート、ログ、使用量、コスト概算を確認でき、SQLite、MySQL、PostgreSQL とローカル認証情報暗号化を単一バイナリで利用できます。

クイックスタート

Warning

1.x を使用している場合は、先に「1.x からの移行」を確認してください。2.0 は 1.x データを開く・インポートする・その場で移行することはできません。

1. サービスを起動する

Docker と Docker Compose が必要です。

git clone --depth 1 https://github.com/tbphp/gpt-load.git
cd gpt-load

cp .env.example .env
docker compose up -d

起動を確認します:

curl --fail http://127.0.0.1:3001/health

初回起動時に管理キーが自動生成されます。読み出して安全に保管してください:

docker compose exec gpt-load sh -c 'cat /app/data/auth.key'

http://127.0.0.1:3001 を開き、そのキーでコンソールにログインします。

起動前に .env の AUTH_KEY で管理キーを明示的に指定することもできます。既定ではローカルアドレスのみを待ち受け、インターネットには直接公開されません。

2. 初期設定を行う

初期設定は 3 ステップです:

  1. チャネルを追加 — アップストリームサービスを選び、API キーを 1 つ以上登録します。サブスクリプションチャネルは画面の案内に従って OAuth 認可または認証情報のインポートを行います。
  2. Group を作成 — チャネルを選び、利用可能なモデルと実行ポリシーを設定します。
  3. AccessKey を作成 — アクセスを許可する Group とクライアントプロトコルを設定し、生成された AccessKey をアプリケーションに渡します。
サブスクリプションチャネルの OAuth コールバックポート

Codex、Claude、Antigravity の OAuth クライアントは固定のコールバックポートを使用します。Compose はそれらを HOST で設定したアドレスに公開し、既定値は 127.0.0.1 です。HOST=0.0.0.0 を設定すると、これらのコールバックポートもホストの全ネットワークインターフェイスに公開されます。ポートはアップストリームのクライアント側で固定されているため、同一ホスト上で同時に実行できる既定の Compose インスタンスは 1 つだけです。

SSH やリモートブラウザ経由で操作する場合、ブラウザの localhost から GPT-Load に到達できないことがあります。その場合はコールバック URL 全体を認可ダイアログに貼り付けることでフローを完了できます。

画面プレビュー

グループ概要 — チャネル、モデル、認証情報数、トラフィック、健全性をまとめて確認

GPT-Load の新しいグループ概要

使用量統計 — リクエスト傾向、キャッシュヒット率、Token 分類、コスト概算を確認

GPT-Load の新しい使用量統計

サポート範囲

クライアントプロトコル

プロトコル 主なエンドポイント
OpenAI Chat Completions POST /v1/chat/completions
OpenAI Responses /v1/responses およびそのリソースパス
OpenAI Images POST /v1/images/...
OpenAI Embeddings POST /v1/embeddings
Rerank POST /v1/rerank
Mistral ネイティブ /v1/ocr、/v1/audio/...
Anthropic Messages POST /v1/messages
Gemini /v1beta/models/...
Gemini Embeddings POST /v1beta/models/{model}:embedContent / :batchEmbedContents

組み込みチャネル

  • 公式・クラウド:OpenAI、Anthropic、Gemini、xAI、Azure OpenAI、AWS Bedrock、Google Vertex AI
  • モデルサービス:DeepSeek、Moonshot AI、SiliconFlow、Zhipu AI、Alibaba、Volcengine、OpenRouter、Cline、Groq、Cerebras、Mistral、Nebius、Parasail、Wafer、Hugging Face(チャット)、Cohere(テキストリランキング)、OpenCode Go、OpenCode Zen
  • サブスクリプション:Codex、Claude、Antigravity、Grok
  • カスタム:OpenAI Compatible(任意の互換中継)

デプロイとデータ

Docker Compose は既定でアプリケーション管理の SQLite を使用します。データは gpt-load-data という名前付きボリュームに保存され、データベース、auth.key、encryption.key を含みます。

Important

encryption.key はチャネル認証情報の復号に使われます。バックアップや移行の際は、データベースと鍵を必ず一緒に保管してください。鍵を失ったり置き換えたりすると、既存の暗号化済み認証情報は復元できません。また現行バージョンはマスターキーのローテーションに対応していません。

外部データベースを使う

統一された DATABASE_DSN で SQLite、MySQL、PostgreSQL に接続します:

mysql://user:password@db.example:3306/gpt_load?charset=utf8mb4&collation=utf8mb4_bin
postgres://user:password@db.example:5432/gpt_load?sslmode=require

よく使う運用コマンド:

docker compose logs -f      # ログを確認
docker compose pull && docker compose up -d   # 最新の 2.x イメージへ更新
docker compose stop         # サービスを停止

公式 Compose は ghcr.io/tbphp/gpt-load:2 を使用します。GA 前の 2 は検証済みの 2.0 Beta / RC を追跡し、GA 後は安定版 2.x のみを追跡します。イメージの完全なタグからは Git tag の v 接頭辞を除き(例:2.0.0-beta.25)、2.0-beta は 2.0 Beta チャネルとして残します。latest は引き続き 1.x を指します。

ネイティブバイナリを使う

GitHub Releases からプラットフォームに合ったファイルをダウンロードし、同梱の SHA256SUMS で検証してから使用してください:

chmod +x ./gpt-load-linux-amd64

HOST=127.0.0.1 DATA_DIR=./data ./gpt-load-linux-amd64

起動後 http://127.0.0.1:3001 にアクセスします。Linux、macOS(amd64 / arm64)、Windows の計 5 種類のポータブルビルドを提供し、gpt-load-windows-amd64.exe は従来どおりフォアグラウンドで動作します。

Windows の一般ユーザーは代わりに gpt-load-windows-setup.exe を利用できます。管理者権限を一度承認すると、低権限の Windows サービスをインストールして起動し、自動起動を設定したうえで、デスクトップとスタートメニューに GPT-Load 管理画面へのショートカットを作成します。インストール中に生成された管理キーが表示されるため、画面を閉じる前に保存してください。保護されたキーは %ProgramData%\GPT-Load\data\auth.key に残ります。サービス設定と .env は %ProgramData%\GPT-Load、永続データは %ProgramData%\GPT-Load\data に保存されます。

新しい Setup による上書きインストールでは、サービスを安全に停止してから更新します。Windows のアンインストールはプログラムとサービスを削除しますが、データは保持します。上級ユーザーは gpt-load-windows-amd64.exe service start|stop|restart|status でもサービスを管理できます。

環境設定

アプリケーションは起動時にカレントディレクトリの .env を読み込み、既存のプロセス環境変数を優先します。特記がない限り、変更後はプロセスまたはコンテナを再起動してください。一般的な設定テンプレートは .env.example を参照してください。

すべての環境変数を表示
変数 既定値 説明
HOST 127.0.0.1 Native モードの待受アドレスであり、Compose のメインポートと OAuth コールバックポートをホストに公開する既定アドレスです。Compose コンテナ内部では常に 0.0.0.0 で待ち受けます。
PORT 3001 HTTP サービスポート。1–65535 である必要があり、Compose はコンテナポート、ホスト公開ポート、ヘルスチェックにも使用します。
BIND_ADDRESS 空、HOST を継承 Compose のみ。OAuth コールバックポートを変更せず、メインサービスポートのホスト公開アドレスを上書きします。
OAUTH_CALLBACK_BIND_ADDRESS 空、HOST を継承 Compose のみ。固定 OAuth コールバックポート 1455、54545、51121 のホスト公開アドレスを上書きします。
GRACEFUL_SHUTDOWN_TIMEOUT 10 停止シグナル後にリクエストの完了を待つ最大時間。正の整数、単位は秒です。
CONTAINER_STOP_GRACE_PERIOD 15s Compose がコンテナを強制停止する前に待つ Docker duration。GRACEFUL_SHUTDOWN_TIMEOUT より長くすることを推奨します。
READ_TIMEOUT 60 HTTP リクエストの読み取りタイムアウト。正の整数、単位は秒です。
IDLE_TIMEOUT 120 HTTP keep-alive アイドル接続のタイムアウト。正の整数、単位は秒です。
DATA_DIR ./data 管理対象データベース、auth.key、encryption.key、実行状態ファイルのディレクトリ。公式 Compose では /app/data、Windows Setup サービスでは %ProgramData%\GPT-Load\data を使用します。
DATABASE_DSN 空、${DATA_DIR}/gpt-load.db を使用 空の場合はアプリケーション管理の SQLite を使用します。空でない場合は SQLite のパスまたは URL、MySQL URL、PostgreSQL URL に対応し、運用者管理の外部データベースとして扱います。コンテナ内のファイルパスはマウント済みディレクトリ内である必要があります。
DATABASE_MAX_OPEN_CONNECTIONS 10 MySQL と PostgreSQL の最大オープン接続数。正の整数である必要があります。SQLite は常に単一接続を使用します。
DATABASE_MAX_IDLE_CONNECTIONS 5 MySQL と PostgreSQL の最大アイドル接続数。正の整数かつ DATABASE_MAX_OPEN_CONNECTIONS 以下である必要があります。SQLite は常に単一接続を使用します。
AUTH_KEY 空、${DATA_DIR}/auth.key を読み込むか生成 管理画面と /api 管理 API の Bearer キー。データプレーンの AccessKey とは異なります。
ENCRYPTION_KEY 空、${DATA_DIR}/encryption.key を読み込むか生成 チャネル認証情報を暗号化します。変更または紛失すると既存の認証情報を復号できないため、データベースと一緒にバックアップしてください。
HTTP_PROXY 空 HTTP アップストリームリクエストの環境プロキシ。
HTTPS_PROXY 空 HTTPS アップストリームリクエストの環境プロキシ。
NO_PROXY 空 環境プロキシをバイパスするホスト、ドメイン、IP のカンマ区切りリスト。
LOG_LEVEL info panic、fatal、error、warn、warning、info、debug、trace に対応します。無効な値は警告を出して info に戻ります。
LOG_FORMAT text text と json に対応します。それ以外の値では起動に失敗します。
MODELS_DEV_AUTO_SYNC_ENABLED 未設定、初期既定値 true 未設定時は管理画面に保存された設定を使用します。設定時は Models.dev の自動同期を強制的に有効または無効にし、管理画面の同名オプションを読み取り専用にします。

環境プロキシは、認証情報、Group、グローバル設定のいずれにもプロキシが指定されていない場合にのみ適用されます。

1.x からの移行

Warning

GPT-Load 2.0 は完全な書き直しです。1.x のデータを開く・インポートする・その場で移行することはできません。

2.0 は独立したデータベース、DATA_DIR、ポート、Docker ボリュームでデプロイしてください。検証完了後に本番トラフィックを切り替え、ロールバック期間が終了するまで既存の 1.x 環境を保持してください。1.4.x メンテナンスラインのドキュメントは公式ドキュメントにあります。

オープンソース依存

GPT-Load の一部機能は以下のプロジェクトを基盤としています。感謝いたします:

プロジェクト 役割 ライセンス
Bifrost Core 各プロバイダーの認証、リクエスト/レスポンス変換、ストリーミング、使用量の正規化 Apache-2.0
CLIProxyAPI サブスクリプションチャネルの OAuth と実行アダプター MIT
Lobe Icons 管理画面のチャネルブランドアイコン MIT

認証情報の保存、アカウント選択、スケジューリング、リトライ、健全性、アフィニティ、ログ、使用量ポリシーは GPT-Load が担います。サードパーティ表記は THIRD_PARTY_NOTICES.md、ライセンス全文は LICENSES/ にあり、各リリースには Go 依存関係を対象とした CycloneDX SBOM が付属します。

チャネルアイコンは対応するアップストリームプロバイダーを識別するために使用しています。商標権は各所有者に帰属し、本プロジェクトはこれらのプロバイダーと提携関係や推奨関係にはありません。

プロジェクト支援

OpenAI
プラットフォーム支援
LINUX DO
コミュニティ支援
DigitalOcean
インフラ支援

MIT License · サードパーティ表記 · セキュリティポリシー