respanai/respan-gateway
One endpoint for every LLM vendor. Any SDK, any model, any tool. One Rust binary.
Respan Gateway は、アプリケーションと主要なAIプロバイダーすべての間に位置する単一のプログラム(Rustバイナリ)です。各AIベンダーごとに個別のコードを書く代わりに、既存のAI SDKをRespan Gatewayに向けるだけで、リクエストを任意のプロバイダー(OpenAI、Anthropic、Geminiなど多数)に翻訳し、フォーマットの切り替え、失敗した呼び出しの再試行、最安または最速のオプションへのルーティングなどの厄介な詳細を処理します。
機能
- 任意のクライアント、任意のモデル — OpenAI、Anthropic、GeminiのSDKを使用しても、任意のプロバイダーのモデルを呼び出すことができます。ゲートウェイが異なるAPIフォーマット間を自動的に翻訳します。
- マルチモーダル — テキストチャットだけでなく、画像、音声(リアルタイム)、音声合成、文字起こし、埋め込み、ビデオもベンダー間でサポートします。
- すべてのモデルに対応するツール — MCPサーバー(AIモデルにWeb検索やコード実行などの追加ツールを提供する標準的な方法)を接続し、元々それ用に設計されていないモデルでも、任意のモデルで動作させることができます。
- トラフィック制御 — 名前付きルート、フォールバック、再試行、および「ヘッジ」されたリクエスト(低速な呼び出しを2番目のプロバイダーと競争させて最速の応答を得る)を設定できます。
- 可観測性 — すべてのリクエストをコスト、レイテンシ、トークン使用量とともにログに記録し、トレースをRespanの分析プラットフォームに送信できます。
- パフォーマンス — READMEによると、ベンチマークで非常に低い追加レイテンシ(0.07 ms)、高スループット(毎秒56,000以上のリクエスト)、低メモリ使用量(31 MB)を実現しています。
- プラグイン — ゲートウェイが行うすべてのことは、公開Rust API上のプラグインとして構築されています。1つのトレイトと4つのフックだけで、独自のプラグイン(ガードレール、PIIマスキング、課金など)を書くことができます。
使用方法
- インストール —
pip install respan-gateway(またはCargoまたはGitHubリリース経由)。 - 実行 — APIキーを環境変数として設定し(例:
OPENAI_API_KEY)、respan-gatewayを実行します。開始時に設定ファイルは不要で、キーが設定されているプロバイダーを自動的に検出します。 - 呼び出し — 既存のSDKを
http://localhost:8080(デフォルトアドレス)に向けます。例えば、Anthropic SDKでbase_urlをそのアドレスに設定すると、OpenAIのモデルでも任意のモデルを呼び出すことができます。
Web UIはhttp://localhost:8080/ui/でモニタリングに利用できます。
設定
より詳細な制御が必要な場合は、respan-gateway initを実行して、コメント付きのgateway.tomlファイルを生成します。このファイルでは、プロバイダー、ルート、ツール、トレーシングを定義できます。respan-gateway checkで検証し、--watchまたはSIGHUPを使用して再起動せずにリロードできます。クライアントキーがない場合、ゲートウェイはセキュリティ上、localhostのみで待ち受けます。
サポートされているAPIフォーマット
ゲートウェイは、いくつかの一般的なフォーマット(OpenAI Chat Completions、OpenAI Responses、Anthropic Messages、Gemini API、さらにリアルタイム音声、画像、音声合成、埋め込み、ビデオ、決定)でリクエストを受け付け、その機能をサポートする任意のプロバイダーに翻訳します。また、ベンダー固有のAPI呼び出しはそのまま中継します。
プラグインとコミュニティ
すべてがプラグインベースなので、拡張できます。READMEには、16のモデルプロバイダー、12のツールベンダー、およびLangChain、Vercel AI SDK、Pydantic AIなどの一般的なフレームワークとの統合ガイドがリストされています。貢献は歓迎されており、新しいベンダーの追加は通常1つのファイルだけです。
詳細については、READMEが設定、ベンダー、MCPツール、プラグイン開発に関するドキュメントファイルを参照しています。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト