>_ DevTrendsja

言語

ホーム

言語

セクション

フロントエンド バックエンド モバイル DevOps AI / ML ゲーム開発 ブロックチェーン 組み込み セキュリティ
TypeScript

ニューラルネットワークのアダプター作成から解放され、トークンコストを制御する方法

最近、Claudeの統合を更新されたクライアントに書き換えていたとき、ふと考え込んでしまいました。今日はGPT-4oを接続してほしいと言い、翌日からはAnthropicが必要だと言い、1週間もすれば財務部門がテスト用の何百ドルもの請求書の出どころを聞いてくる。毎回、エラー処理のロジックを追加し、鍵を管理し、トークンの経費を手動で計算する必要があります。

このルーティンワークを解決するのが、The Open CoチームのLLM Gatewayです。このプロジェクトは統一されたAPIゲートウェイとして機能し、标准的なOpenAI形式の呼び出しを受け付け、適切なプロバイダーにルーティングします。

任意のモデルへの単一リクエスト

コアコンセプトはシンプルです。複数のSDKを統合する代わりに、単一のHTTPリクエストをローカルまたはクラウドゲートウェイに送信します。コントローラーが自動的に対象プロバイダーを識別し、フォーマットを変換してレスポンスを返します。

現在、以下の主要プロバイダーがサポートされています:

  • OpenAI
  • Anthropic
  • Google Vertex AI
  • 互換性のあるAPIを持つその他のサービス

標準的なゲートウェ irequestの例は以下のとおりです:

Claude 3.5 Sonnetに切り替える必要がある場合、アプリケーションのJSON構造は変わりません。リクエストボディ内のモデル名のみを変更します。

コスト追跡とレイテンシーメトリクス

複数のサービスや開発者がニューラルネットワークを扱う場合、制限の管理が困難になります。誤ったプロンプトが無限ループで実行され、1時間で月間予算を使い果たすこともあります。

ゲートウェイが追跡を代行します。各トランザクションはデータベースに保存され、システムは以下を自動的に計算します:

  • 入力トークン数と出力トークン数
  • 各呼叫の総コスト
  • モデルのレスポンス時間
  • 鍵別・プロジェクト別の全体統計

Webパネルから готовыеグラフを表示でき、どの特定のモデルが予算の大部分を消費しているかをすぐに確認できます。

プロジェクト構造とDockerでの実行

著者はTypeScriptでモノレポを構築しました。内部では実証済みのテクノロジーが使用されています:

  • APIリクエストのプロキシにはHono
  • Webインターフェースとプレイグラウンドの管理にはNext.js
  • PostgreSQLRedisデータベースとの連携にはDrizzle ORM
  • コンポーネントのエンドツーエンドの型付けにはTypeScript

Dockerを使えば、数分で独自のサービスをデプロイできます。著者はメインコンポーネントを組み合わせた готовыйイメージを用意しています。

ドキュメントの小さな注意点として、ホストマシンのフォルダを直接 /var/lib/postgresql/data にマウントしないでください。PostgreSQLの権限初期化の特性により、プロセスがクラッシュする可能性があります。上記のコマンドの名前付きボリュームがこの問題を回避します。

デプロイせずにシステムを試す場合は、開発者がllmgateway.ioでクラウド版を用意しています。

無料版の制限事項

リポジトリは二重ライセンスを採用しています。メインコードはAGPLv3で配布されていますが、ソースコードの一部のフォルダはEnterprise版に属しています。

無料オープンソース版では、呼叫履歴が30日間保存されます。無制限のログ保持、高度なユーザー請求、組織内のチーム分離が必要な場合は、商用ライセンスを購入する必要があります。

このツール誰が恩恵を受けるか

アプリケーションが1日3回、単一のモデルにリクエストを送信するだけなら、別途プロキシを設定する意味はありません。追加の障害ポイントとわずかなネットワーク遅延が増えるだけです。

ゲートウェイは以下の状況で真価を発揮します:

  • プロジェクトで異なるプロバイダーのモデルを使用している
  • 異なるサービス間での透明なトークンコスト追跡が必要
  • 独自環境でのプロキシデプロイが必要
  • 障害時にバックアップモデルへの迅速なフェイルオーバー切り替えを計画している

プロジェクトはGitHubで試すことができます。READMEは非常に簡潔ですが、長い説明がなくてもプロジェクトは理解できます。

関連プロジェクト