tbphp/gpt-load

Self-hosted AI gateway for multi-channel, multi-credential setups — API keys and subscription accounts, scheduling, failover, request logs and usage. 自托管 AI 网关:多渠道多凭据统一接入,含密钥与订阅账号、调度容错、日志与用量。

GPT-Load - LLM API用セルフホスト型ゲートウェイ

機能

  • ネイティブなOpenAI、Anthropic、GeminiなどのAPIを模倣する単一のHTTPエンドポイントを提供します。
  • そのエンドポイントの背後で、多くのチャンネル(異なるプロバイダー、アカウント、またはサブスクリプションサービス)を設定し、ゲートウェイが重み、健全性、またはコストに基づいてリクエストをルーティングできるようにします。
  • APIキー管理、OAuthフロー、リトライ、クールダウン、ブラックリスト、およびクライアントごとのアクセスキーを処理します。
  • SQLite、MySQL、またはPostgreSQLをバックエンドとする組み込みUIにログ、使用統計、コスト見積もりを保存し、資格情報はディスク上で暗号化されます。

必要な理由

  • アプリが各プロバイダー用にコードを変更せずに、複数のLLMプロバイダー(OpenAI、Claude、Gemini、Bedrockなど)と通信する必要がある場合。
  • 複数のAPIキー間でトラフィックを分散し、レート制限のヒットを回避し、1つのキーが失敗した場合に健全なキーに自動的にフォールバックするため。
  • すべてのLLM呼び出しの統合された監査証跡とコストダッシュボードを1か所で維持するため。

主要コンポーネント

コンポーネント 役割
ゲートウェイサーバー(Goで記述) OpenAI互換のルートを公開し、選択されたアップストリームチャンネルにリクエストを転送し、スケジューリングとリトライロジックを適用します。
管理UI チャンネル、グループ、AccessKeyを追加するためのWebコンソール(ポート3001)。健全性、ログ、使用状況チャートを表示します。
チャンネル 特定のアップストリームサービス(例:OpenAI、Anthropic、カスタムOpenAI互換リレー)と1つ以上のAPI資格情報の構成。
グループ モデルホワイトリストとルーティングポリシー(重み、クールダウン、セッションアフィニティ)を持つチャンネルのコレクション。
AccessKey クライアントアプリケーションに提供されるトークン。クライアントが使用できるグループとプロトコルを決定します。

サポートされているプロトコルとモデル

  • OpenAIチャット、完了、埋め込み、画像、再ランク、OCR/オーディオなど。
  • Anthropic messages、Gemini modelsエンドポイント、Mistral OCR/オーディオ、および汎用OpenAI互換リレー。
  • 30以上の組み込みプロバイダー:OpenAI、Azure OpenAI、AWS Bedrock、Google Vertex AI、Claude、Gemini、DeepSeek、Moonshot、Hugging Face、Cohere、Groqなどに加え、CodexやGrokなどのサブスクリプションベースのサービス。

デプロイメントオプション

  • Docker Compose(デフォルト) – サービスをコンテナで実行し、データをDockerボリューム(gpt-load-data)に保存します。
  • ネイティブバイナリ – Linux/macOS/Windows用のプリビルド実行可能ファイルをダウンロード。Windowsではサービスを作成するインストーラーも提供されます。
  • データベース – SQLiteがそのまま動作します。DATABASE_DSNを介してMySQLまたはPostgreSQLに切り替えることができます。

構成のハイライト

  • .envファイルは、ホスト、ポート、タイムアウト、ログ、プロキシ設定、暗号化キーを制御します。
  • AUTH_KEYは管理UIを保護し、ENCRYPTION_KEYは保存されたAPIシークレットを暗号化します(DBと一緒にバックアップする必要があります)。
  • CLIENT_IP_HEADERとTRUSTED_PROXIESを使用すると、リバースプロキシの背後で実行し、IPベースの制限を適用できます。

典型的なワークフロー

  1. 開始 サービスを開始します(docker compose up -d)。
  2. 読み取り 生成された管理キーを読み取ります(cat /app/data/auth.key)。
  3. ログイン http://127.0.0.1:3001にログインし、チャンネルを追加します(例:OpenAI + APIキー)。
  4. グループを作成 チャンネルと公開するモデルを選択します。
  5. AccessKeyを生成 アプリケーション用にAccessKeyを生成し、ゲートウェイを呼び出すときにAuthorization: Bearer …ヘッダーでそのキーを使用します。

注意が必要な場合

  • encryption.keyを失うと、保存されているすべての資格情報が復元できなくなります。
  • バージョン2.0は完全な書き直しであり、以前の1.x系からのデータをインポートできません。
  • サービスはデフォルトでlocalhostにバインドされます。独自のファイアウォールまたはリバースプロキシの背後でのみ公開してください。

ライセンスとコミュニティ

  • MITライセンスのコアコード。
  • プロバイダーアダプターにはApache-2.0のBifrost Core、OAuth処理にはMITのCLIProxyAPIに依存しています。
  • 公式Dockerイメージ:ghcr.io/tbphp/gpt-load:2。

すべての詳細はプロジェクトのREADMEから直接取得されています。

関連

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