mostlygeek/llama-swap

Reliable model swapping for any local OpenAI/Anthropic compatible server - llama.cpp, vllm, etc

何を解決するか

llama-swap は、1台のマシン上で複数の生成AIモデルを実行し、必要に応じてモデル間を切り替えることを可能にします。異なるモデル用に手動で推論サーバーを起動・停止する必要がなく、ローカルAIワークフロー用の統合APIインターフェースを提供します。

動作方法

OpenAIおよびAnthropic互換エンドポイントへのリクエストをインターセプトするリバースプロキシとして機能します。リクエストで特定のモデルが指定されると、llama-swap はモデルIDを抽出し、対応するサーバー設定を自動的に読み込みます。必要なモデルのサーバーが現在実行中でない場合、アクティブなサーバーを正しいものにスワップします。基本設定では1つのモデルのみを扱いますが、上級ユーザー向けに複数のモデルを並行して実行できるカスタムDSL「matrix」をサポートしています。

対象ユーザー

ローカルLLM、画像生成モデル、音声モデルを実行している開発者やAI愛好家で、プロセスやポートを手動で管理せずに複数のモデルをスムーズに管理したい方。

主な特徴

  • 広範な互換性: OpenAIおよびAnthropic APIエンドポイントに加え、llama.cpp、stable-diffusion.cpp、audio.cpp、ComfyUI専用のエンドポイントもサポート。
  • 依存関係ゼロ: 高性能かつシンプルなGoで構築されており、単一のバイナリと設定ファイルのみが必要。
  • 統合Web UI: モデルのテスト、トークンメトリクスのモニタリング、リクエスト/レスポンスの検査が可能なリアルタイムインターフェースを内蔵。
  • 高度なリソース管理: TTL(有効時間)設定によるモデルの自動アンロードと、Docker/Podmanコンテナのサポート。
  • 観測性: 詳細なログストリーミング(プロキシ、アップストリーム、各モデルごと)とPrometheusメトリクスにより、システムおよびGPU使用状況を監視可能。

関連

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