Claude Code も Codex も Gemini もつなぐ、LLM API 変換プロキシ「llmglot」を開発した
AI 開発の現場では、モデルそのものよりも API 仕様の違いに悩まされることが増えている。
Claude Code は Anthropic Messages API を利用する。OpenAI 系ツールは Chat Completions API や Responses API を利用する。Gemini は独自 API を持ち、ローカル LLM 環境では Ollama や LM Studio がOpenAI 互換 API を提供する。
利用したいモデルは存在するにもかかわらず、API 仕様が違うために接続できない。SDK を書き換え、変換レイヤーを実装し、環境ごとに設定を分ける必要がある。
こうした問題を解決するのが llmglot である。
GitHub: https://github.com/Himeyama/llmglot
llmglot とは
llmglot は、複数の LLM API を相互変換するプロキシサーバーである。
Anthropic Messages API、OpenAI Responses API、OpenAI Chat Completions API、Gemini API などを受け取り、上流の API へ適切に変換して転送する。
つまり、クライアントが要求するAPI仕様と、実際に利用したいモデルのAPI仕様が一致していなくても利用できる。
対応範囲
クライアント側としては、
- Claude Code
- Anthropic SDK
- OpenAI SDK
- Responses API クライアント
- Gemini SDK
などに対応している。
接続先としては、
- Ollama
- LM Studio
- OpenAI
- Gemini
- OpenRouter
- Azure OpenAI
- vLLM
などが利用できる。
例えば、
- Claude Code → Ollama
- OpenAI SDK → Gemini
- Responses API → Chat Completions API
といった接続が可能になる。
Claude Code とローカル LLM を接続する
llmglot の用途の一つが、Claude Code とローカル LLM の接続である。
例えば Ollama を利用している場合、
CHAT_BASE_URL=http://localhost:11434/v1 llmglot
として起動する。
その後、Claude Code の接続先を llmglot へ変更するだけで、Claude Code からローカル LLM を利用できる。
高価なAPIを利用せずにコードエージェントを試せる点は非常に魅力的である。
(補足: Ollama は Messages API に対応しているので実はプロキシは不要である)
Responses API にも対応
近年は Responses API を利用するツールが増えている。
llmglot は /v1/responses エンドポイントを実装しており、HTTP だけでなく WebSocket にも対応している。
そのため、Codex CLI のような Responses API ベースのクライアントとも接続しやすい。
ログ機能が便利
llmglot にはログ表示機能が搭載されている。
確認できる情報は、
- モデル名
- プロバイダー
- 入力トークン数
- 出力トークン数
- キャッシュ利用量
- 推定コスト
- 生成速度
などである。
複数の LLM を利用する環境では、利用状況を一元管理できるメリットは大きい。
LiteLLM との違い
ここで気になるのが LiteLLM との違いである。
どちらも LLM の間に入るソフトウェアだが、目指している方向は大きく異なる。
LiteLLMの考え方
LiteLLM は多数の LLM プロバイダーを OpenAI 形式に統一する。
つまり、
アプリ
↓
LiteLLM
↓
各LLMプロバイダー
という構成である。
アプリケーション開発者が統一 API を利用するための仕組みと言える。
llmglot の考え方
一方 llmglot は、
Claude Code
Codex CLI
Gemini SDK
↓
llmglot
↓
各 LLM プロバイダー
という構成になる。
クライアント側の API 仕様を変換することが目的である。
Claude Code で比較する
Claude Code は Anthropic Messages API を利用する。
LiteLLM は基本的に OpenAI 互換 API を中心としているため、そのままClaude Code を接続することは難しい。
一方 llmglot は Anthropic Messages API を直接受け付ける。
そのため、
Claude Code
↓
llmglot
↓
Ollama
という構成が実現できる。
これは llmglot の非常に大きな特徴である。
どちらを選ぶべきか
LiteLLM が向いているのは、
- AI アプリケーションを開発する人
- OpenAI SDK を統一インターフェースとして利用したい人
- 負荷分散やフォールバックを行いたい人
である。
一方、llmglot が向いているのは、
- Claude Code を別のモデルで動かしたい人
- ローカル LLM を既存クライアントから利用したい人
- Responses API を別の API へ変換したい人
- SDK を書き換えたくない人
である。
まとめ
LLM の世界ではモデルそのものよりも API の違いが問題になる場面が増えている。
Claude Code を使いたいが Ollama を利用したい。OpenAI SDK を使いたいが Gemini を利用したい。こうした要求は今後さらに増えていくだろう。
llmglot は、その間に立って API 仕様の違いを吸収する。
- Claude Code → Ollama
- OpenAI SDK → Gemini
- Responses API → Chat Completions API
- Gemini API → OpenAI互換API
LiteLLM が「開発者向けの統一 API」であるのに対し、llmglot は「クライアント互換プロキシ」と言える。
読み込み中...