TokenHubでニューラルネットワーク動物園を手なずける方法
チームが高負荷のニューラルネットワークをサービスに統合し始めると、APIキーの管理はほとんど必ずと言っていいほど混乱に陥ります。開発者はOpenAIを使い、アナリストはDeepSeekやQwenを試み、誰かがOllamaでローカルLlamaを起動し、デザイナーは画像生成へのアクセスを必要とします。月末になれば、会計部門は合計請求書を見て、どの部門が予算を使ったのかを把握しようとします。
お心当たりはありませんか?複数の異なるLLMへのアクセスを一元化管理しようとしたことがある人なら、それがどれほどの場当たり的な解決策を必要とするか知っているでしょう:プロキシ、独自ルーター、ログアグリゲーターなど。人気のBeego Goフレームワークの作者(astaxie)がTokenHubというプロジェクトを公開し、この問題を解決してくれました。
内部構造と必要性
TokenHubはGoで書かれたプライベートAIゲートウェイです。インフラストラクチャ内にデプロイし、外部プロバイダーのAPIキーまたはローカルモデルのアドレスを追加し、単一の統一インターフェースを外向けに公開します。
核となるアイデアは、アプリケーション開発者が新しいAPIごとにコードを書き直す必要がないということです。TokenHubは標準的なOpenAIエンドポイント(/v1/chat/completions、/v1/embeddings、/v1/responses)とAnthropic Messages仕様(/v1/messages)をサポートしています。サービスがGPT-4oからClaude 3.5 SonnetやローカルのvLLMに切り替える必要がある場合でも、クライアントコードを変更する必要はなく、ゲートウェイでモデル名を変更するか、ルーティングルールを設定するだけです。
ゲートウェイの主要機能
このリポジトリは、コスト管理と明確な責任分離が重要なエンタープライズシナリオに焦点を当てています。
明確なロール分離
TokenHubのインターフェースとアクセス権は3つのレベルに分かれています:
- 一般ユーザー。利用可能なモデルカタログを表示し、自分のプロジェクト用APIキーを作成し、個人統計とドキュメントを表示します。
- チームリーダー。プロジェクトワークスペース、チームメンバー、共有クォータを管理し、特定のプロジェクトのコストレポートの詳細を確認します。
- 管理者。外部プロバイダーを設定し、OAuth/OIDC経由で企業のSSOを接続し、フェイルオーバーと監査ルールを設定します。
この仕組みは便利です:新しい实习生にテストキーを発行するたびに、チームリーダーはDevOpsに問い合わせる必要はありません。
スマートルーティングとフェイルオーバー
外部プロバイダーが500エラーを返すか、レート制限に達した場合、TokenHubは自動的にリクエストをバックアップチャンネルに切り替えられます(フェイルオーバー)。優先順位の設定、複数のアカウント間での負荷分散の重み付け、組み込み診断によるルート健全性の確認が可能です。
150以上のプロバイダーテンプレートをサポート
デフォルトで、ゲートウェイはAzure OpenAI、Anthropic、Google Gemini、DeepSeek、Qwen、vLLMやOllamaなどのローカル推論サーバー向けのネイティブアダプターと連携しています。OpenAI互換APIを持つサードパーティサービスも、数クリックで готовые テンプレート経由で接続できます。
Codexサブスクリプション統合は特筆に値します:TokenHubはローカルCLIユーティリティ(例:Gemini CLI)からの呼び出しを、分離されたプロファイルを介してプロキシできます。
画像生成と編集
テキストやエンベディングに加えて、システムが画像生成リクエストをエンドポイント /v1/images/generations と /v1/images/edits を介して処理します。ゲートウェイは非同期タスクと生成された画像のサーバーサイドストレージをサポートし、クライアントアプリケーションがファイルを自分のS3に即座にダウンロードする必要がありません。
デプロイとアーキテクチャ
このプロジェクトはGoで書かれており、リソース消費は最小限です。データストレージにはデフォルトでSQLiteが使用されるため、重いデータベースを起動せずに小規模チーム向けのサービスを展開できます。
Linuxでのsystemd経由のテスト用:
curl -fsSL https://raw.githubusercontent.com/astaxie/TokenHub/main/deploy/native/install.sh \
-o /tmp/tokenhub-install.sh
sudo bash /tmp/tokenhub-install.sh install
または、古典的なDocker Composeでの起動:
cp deploy/.env.example deploy/.env
# Задайте надежные пароли в deploy/.env
./deploy/install.sh
起動後、Web管理コンソールはポート3000で、API自体はポート8080でリクエストを受け付けます。
高負荷と複数のバックエンドレプリカを計画している場合、SQLiteは外部のPostgreSQLに簡単に置き換えられます。この場合、状態はインスタンス間で分散され、バージョン更新は集中して展開できます。
今すぐこのプロジェクトが有効なケース
以下の条件に当てはまるなら、TokenHubは最適な選択です:
- 社内でAIツールを開発しており、プロジェクトや部門ごとに支出を一元的に追跡したい。
- 複数のLLMプロバイダーを使用した耐障害性のあるセットアップを構築しており、1つのAPIがダウンしてもクライアントサービスを停止させたくない。
- ローカルにデプロイされたモデル(Ollama / vLLM)への安全なアクセスをチーム全体に提供したいが、推論サーバーへの直接アクセスは許可したくない。
- 異なるダッシュボードで数十のAPIキーを手動で管理することに疲れている。
このプロジェクトはまだ新しいですが、経験豊富なメンテナーに支えられており、Goコードベースはクリーンで理解しやすいです。重量級の商用ソリューションとホームグロウンプロキシの間の選択をしている場合、テスト環境でTokenHubを起動してみる価値は十分あります。
関連プロジェクト