複数のAIサービスを統合する必要がある企業や開発者向けに特別に設計された、高性能でエンタープライズグレードのAI APIトランスペアレントプロキシサービス。Goで構築され、インテリジェントなキー管理、ロードバランシング、包括的な監視機能を備え、高並行性の本番環境向けに設計されています。
詳細なドキュメントについては、公式ドキュメントをご覧ください。
![]() |
Unity2.aiによる本プロジェクトへのスポンサー支援に感謝します!Unity2.aiは、個人開発者、チーム、企業向けの高性能AIモデルAPI中継プラットフォームです。中国国内の大手企業に長期的にサービスを提供しており、1日あたり300億token超の呼び出しを処理し、5000 RPM級の高並行性をサポートします。残高課金、初回チャージ特典、組み合わせサブスクリプション、企業向け請求書発行、専属連携サポートに対応しています。こちらのリンクから登録すると$2の残高を受け取れ、公式グループ参加でさらに$10の残高、最大$12の無料枠を受け取れます。 |
![]() |
LINUX DOコミュニティからのサポートに心より感謝いたします! |
| このプロジェクトはDigitalOceanの支援を受けています。 |
GPT-Loadは、さまざまなAIサービスプロバイダーのネイティブAPIフォーマットを完全に保持するトランスペアレントプロキシサービスとして機能します:
docker run -d --name gpt-load \
-p 3001:3001 \
-e AUTH_KEY=your-secure-key-here \
-v "$(pwd)/data":/app/data \
ghcr.io/tbphp/gpt-load:latest
your-secure-key-hereを強力なパスワードに変更してください(デフォルト値は絶対に使用しないでください)。その後、管理インターフェースにログインできます:http://localhost:3001
インストールコマンド:
# ディレクトリを作成
mkdir -p gpt-load && cd gpt-load
# 設定ファイルをダウンロード
wget https://raw.githubusercontent.com/tbphp/gpt-load/refs/heads/main/docker-compose.yml
wget -O .env https://raw.githubusercontent.com/tbphp/gpt-load/refs/heads/main/.env.example
# .envファイルを編集し、AUTH_KEYを強力なパスワードに変更します。デフォルトやsk-123456のような単純なキーは絶対に使用しないでください。
# サービスを開始
docker compose up -d
デプロイメント前に、デフォルトの管理キー(AUTH_KEY)を必ず変更してください。推奨フォーマット:sk-prod-[32文字のランダム文字列]。
デフォルトのインストールは、軽量な単一インスタンスアプリケーションに適したSQLiteバージョンを使用します。
MySQL、PostgreSQL、Redisをインストールする必要がある場合は、docker-compose.ymlファイルで必要なサービスのコメントを解除し、対応する環境変数を設定して、再起動してください。
その他のコマンド:
# サービスステータスを確認
docker compose ps
# ログを表示
docker compose logs -f
# サービスを再起動
docker compose down && docker compose up -d
# 最新バージョンに更新
docker compose pull && docker compose down && docker compose up -d
デプロイメント後:
変更したAUTH_KEYを使用して管理インターフェースにログインしてください。
ソースビルドには、ローカルにインストールされたデータベース(SQLite、MySQL、またはPostgreSQL)とRedis(オプション)が必要です。
# クローンとビルド
git clone https://github.com/tbphp/gpt-load.git
cd gpt-load
go mod tidy
# 設定を作成
cp .env.example .env
# .envファイルを編集し、AUTH_KEYを強力なパスワードに変更します。デフォルトやsk-123456のような単純なキーは絶対に使用しないでください。
# .envでDATABASE_DSNとREDIS_DSNの設定を変更
# REDIS_DSNはオプションです。設定されていない場合、メモリストレージが有効になります
# 実行
make run
デプロイメント後:
変更したAUTH_KEYを使用して管理インターフェースにログインしてください。
クラスターデプロイメントでは、すべてのノードが同じMySQL(またはPostgreSQL)とRedisに接続する必要があり、Redisは必須です。統一された分散MySQLとRedisクラスターの使用を推奨します。
デプロイメント要件:
AUTH_KEY、DATABASE_DSN、REDIS_DSNを設定する必要がありますIS_SLAVE=true詳細については、クラスターデプロイメントドキュメントを参照してください。
GPT-Loadは二層設定アーキテクチャを採用しています:
.envファイルまたはシステム環境変数を介して設定静的設定(環境変数)
サーバー設定:
| 設定 | 環境変数 | デフォルト | 説明 |
|---|---|---|---|
| サービスポート | PORT |
3001 | HTTPサーバーリスニングポート |
| サービスアドレス | HOST |
0.0.0.0 | HTTPサーバーバインディングアドレス |
| 読み取りタイムアウト | SERVER_READ_TIMEOUT |
60 | HTTPサーバー読み取りタイムアウト(秒) |
| 書き込みタイムアウト | SERVER_WRITE_TIMEOUT |
600 | HTTPサーバー書き込みタイムアウト(秒) |
| アイドルタイムアウト | SERVER_IDLE_TIMEOUT |
120 | HTTP接続アイドルタイムアウト(秒) |
| グレースフルシャットダウンタイムアウト | SERVER_GRACEFUL_SHUTDOWN_TIMEOUT |
10 | サービスグレースフルシャットダウン待機時間(秒) |
| フォロワーモード | IS_SLAVE |
false | クラスターデプロイメント用フォロワーノード識別子 |
| タイムゾーン | TZ |
Asia/Shanghai |
タイムゾーンを指定 |
セキュリティ設定:
| 設定 | 環境変数 | デフォルト | 説明 |
|---|---|---|---|
| 管理キー | AUTH_KEY |
- | 管理端末のアクセス認証キー、強力なパスワードに変更してください |
| 暗号化キー | ENCRYPTION_KEY |
- | APIキーを保存時に暗号化。任意の文字列をサポート、空の場合は暗号化を無効化。データ暗号化移行を参照 |
データベース設定:
| 設定 | 環境変数 | デフォルト | 説明 |
|---|---|---|---|
| データベース接続 | DATABASE_DSN |
./data/gpt-load.db |
データベース接続文字列(DSN)またはファイルパス |
| Redis接続 | REDIS_DSN |
- | Redis接続文字列、空の場合はメモリストレージを使用 |
パフォーマンス&CORS設定:
| 設定 | 環境変数 | デフォルト | 説明 |
|---|---|---|---|
| 最大同時リクエスト数 | MAX_CONCURRENT_REQUESTS |
100 | システムが許可する最大同時リクエスト数 |
| CORS有効化 | ENABLE_CORS |
false | クロスオリジンリソース共有を有効にするか |
| 許可されたオリジン | ALLOWED_ORIGINS |
- | 許可されたオリジン、カンマ区切り |
| 許可されたメソッド | ALLOWED_METHODS |
GET,POST,PUT,DELETE,OPTIONS |
許可されたHTTPメソッド |
| 許可されたヘッダー | ALLOWED_HEADERS |
* |
許可されたリクエストヘッダー、カンマ区切り |
| 認証情報の許可 | ALLOW_CREDENTIALS |
false | 認証情報の送信を許可するか |
ログ設定:
| 設定 | 環境変数 | デフォルト | 説明 |
|---|---|---|---|
| ログレベル | LOG_LEVEL |
info |
ログレベル:debug, info, warn, error |
| ログフォーマット | LOG_FORMAT |
text |
ログフォーマット:text, json |
| ファイルログ有効化 | LOG_ENABLE_FILE |
false | ファイルログ出力を有効にするか |
| ログファイルパス | LOG_FILE_PATH |
./data/logs/app.log |
ログファイル保存パス |
プロキシ設定:
GPT-Loadは、アップストリームAIプロバイダーへのリクエストを行うために環境変数からプロキシ設定を自動的に読み取ります。
| 設定 | 環境変数 | デフォルト | 説明 |
|---|---|---|---|
| HTTPプロキシ | HTTP_PROXY |
- | HTTPリクエスト用のプロキシサーバーアドレス |
| HTTPSプロキシ | HTTPS_PROXY |
- | HTTPSリクエスト用のプロキシサーバーアドレス |
| プロキシなし | NO_PROXY |
- | プロキシをバイパスするホストまたはドメインのカンマ区切りリスト |
サポートされているプロキシプロトコルフォーマット:
http://user:pass@host:porthttps://user:pass@host:portsocks5://user:pass@host:port動的設定(ホットリロード)
基本設定:
| 設定 | フィールド名 | デフォルト | グループ上書き | 説明 |
|---|---|---|---|---|
| プロジェクトURL | app_url |
http://localhost:3001 |
❌ | プロジェクトベースURL |
| グローバルプロキシキー | proxy_keys |
AUTH_KEYの初期値 |
❌ | グローバルに有効なプロキシキー、カンマ区切り |
| ログ保持日数 | request_log_retention_days |
7 | ❌ | リクエストログ保持日数、0でクリーンアップなし |
| ログ書き込み間隔 | request_log_write_interval_minutes |
1 | ❌ | データベースへのログ書き込みサイクル(分) |
| リクエストボディログ有効化 | enable_request_body_logging |
false | ✅ | リクエストログに完全なリクエストボディコンテンツを記録するか |
リクエスト設定:
| 設定 | フィールド名 | デフォルト | グループ上書き | 説明 |
|---|---|---|---|---|
| リクエストタイムアウト | request_timeout |
600 | ✅ | 転送リクエストの完全なライフサイクルタイムアウト(秒) |
| 接続タイムアウト | connect_timeout |
15 | ✅ | アップストリームサービスとの接続確立のタイムアウト(秒) |
| アイドル接続タイムアウト | idle_conn_timeout |
120 | ✅ | HTTPクライアントアイドル接続タイムアウト(秒) |
| レスポンスヘッダータイムアウト | response_header_timeout |
600 | ✅ | アップストリームレスポンスヘッダーの待機タイムアウト(秒) |
| 最大アイドル接続数 | max_idle_conns |
100 | ✅ | 接続プールの最大総アイドル接続数 |
| ホストごとの最大アイドル接続数 | max_idle_conns_per_host |
50 | ✅ | アップストリームホストごとの最大アイドル接続数 |
| プロキシURL | proxy_url |
- | ✅ | 転送リクエスト用のHTTP/HTTPSプロキシ、空の場合は環境を使用 |
キー設定:
| 設定 | フィールド名 | デフォルト | グループ上書き | 説明 |
|---|---|---|---|---|
| 最大リトライ回数 | max_retries |
3 | ✅ | 単一リクエストで異なるキーを使用する最大リトライ回数 |
| ブラックリストしきい値 | blacklist_threshold |
3 | ✅ | キーが累計何回失敗したらブラックリストに入るか |
| キー検証間隔 | key_validation_interval_minutes |
60 | ✅ | バックグラウンドスケジュールキー検証サイクル(分) |
| キー検証並行数 | key_validation_concurrency |
10 | ✅ | 無効なキーのバックグラウンド検証の並行数 |
| キー検証タイムアウト | key_validation_timeout_seconds |
20 | ✅ | バックグラウンドでの個別キー検証のAPIリクエストタイムアウト(秒) |
GPT-LoadはAPIキーの暗号化保存をサポートしています。いつでも暗号化を有効化、無効化、または暗号化キーを変更できます。
データ暗号化移行の詳細を表示
--to <新しいキー>を使用--from <現在のキー>を使用--from <現在のキー> --to <新しいキー>を使用```bash
docker compose pull
docker compose down
$ claude mcp add gpt-load \
-- python -m otcore.mcp_server <graph>