yym68686/uni-api

This is a project that unifies the management of LLM APIs. It can call multiple backend services through a unified API interface, convert them to the OpenAI format uniformly, and support load balancing. Currently supported backend services include: OpenAI, Anthropic, DeepBricks, OpenRouter, Gemini, Vertex, etc.

uni‑api – 多数のLLMプロバイダー向けの統合・セルフホスト型ゲートウェイ

概要

  • 標準的なOpenAI HTTPエンドポイント(例:/v1/chat/completions、/v1/images/generations、/v1/embeddingsなど)を公開するオープンソースサーバーで、リクエストを設定可能なバックエンドLLMサービスのリストに転送します。
  • 単一のAPIサーフェスを実行しながら、OpenAI、Anthropic、Gemini、Vertex AI、Azure、AWS Bedrock、Cohere、Groq、Cloudflare Workers AI、OpenRouterなどのプロバイダーを組み合わせて利用できます。
  • すべての設定はプレーンなapi.yamlファイル(またはCONFIG_URLで指定されたURL)で行われるため、別途UIは不要です。

主な機能

  • プロバイダー非依存のルーティング – 任意のOpenAIスタイルのリクエストを適切なバックエンドURLとAPIキーにマッピングします。
  • ロードバランシング – 3つのモード:
    1. チャネルごとの重み付けバランシング。
    2. チャネルごとのラウンドロビン(順次)バランシング。
    3. チャネル内の複数APIキーにわたる自動ラウンドロビン。
  • 自動リトライとクーリング – バックエンドがエラーを返した場合、リクエストは次のチャネルで再試行されます。失敗したチャネルは一時的に「クールダウン」され、クールダウン期間が終了するまで除外されます。
  • 細かいタイムアウト設定 – モデルごとに異なるリクエストタイムアウトを設定できます。
  • 権限とレート制限の制御 – APIキーごとのモデルホワイトリスト、ワイルドカードパターン、設定可能なリクエスト上限(例:2/min、5/hour)。
  • ツールと画像のサポート – ネイティブのツール呼び出しおよび画像生成エンドポイントは、対応するプロバイダー(Anthropic、Gemini、Vertexなど)に対して透過的に渡されます。
  • モデレーション – オプションのOpenAIスタイルのコンテンツモデレーションで、許可されていないユーザーメッセージをバックエンドに到達する前にブロックできます。
  • カスタムリクエスト調整 – リクエストボディフィールド、ヘッダー注入、プロキシ設定、最大ペイロードサイズのモデルごとのオーバーライド。

実行方法

  1. api.yamlを準備 – プロバイダー、ベースURL、APIキー、公開するモデルをリストアップします。READMEには最小限の例と非常に詳細な高度な例が含まれています。
  2. デプロイ – 次のいずれか:
    • ファイルをDockerコンテナにapi.yamlとしてマウントする。
    • CONFIG_URLをリモートのYAMLファイルを指すように設定する。コンテナは起動時にそれをダウンロードします。
  3. コンテナを起動 – イメージはDocker Hub(yym68686/uni-api)で公開されています。ワンクリックの「Deploy to Fugue」ボタンで迅速なクラウドデプロイが可能です。
  4. APIを利用 – api_keysセクションで定義した任意のAPIキーを使用して、ホスト上の通常のOpenAIエンドポイント(例:http://localhost:8000/v1/chat/completions)を呼び出します。

対象ユーザー

  • カスタムUIを構築せずに、複数の有料LLMサービスを集約する個人用「プロキシ」を希望する個人や小規模チーム。
  • さまざまなプロバイダーやフォールバック戦略を試しながら、一貫したOpenAI互換インターフェースを必要とする開発者。
  • ロードバランシング、レート制限、モデル固有の調整をシンプルなYAMLベースの設定で行いたい方。

リンク


上記の詳細はすべてリポジトリのREADMEから直接取得したものであり、追加の機能は推測されていません。

関連

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