DeepSeek、Claude、その他のOpenAI互換APIで使えるLiteLLMのプロキシとSDK

LiteLLMは、さまざまなモデルプロバイダーの前段に、OpenAI形式の単一のAPIを置ける、無料のオープンソースのPython SDK兼プロキシサーバーです。ZurelayのOpenAI互換APIに接続するよう設定し、SDK、プロキシ、Claude Codeをそれぞれ経由して動かしました。その過程でうまく動かなかった設定をすべて記録しています。

· Zurelayガイド · 料金はリアルタイムで更新

LiteLLMの機能

  • SDKは、OpenAI形式であらゆるプロバイダーを呼び出せるPython関数completion()1つだけです。モデル名のプレフィックスでプロバイダーが決まります。openai/は、OpenAI互換のあらゆるAPIを意味します。
  • プロキシは、ご自身で運用するサーバーで、デフォルトでは http://localhost:4000 で動作します。アプリは OpenAI や Anthropic の形式でこのサーバーを呼び出し、プロバイダーの手前でキー、予算管理、ログ記録、フォールバックを追加します。

プロキシを設定する

  1. 仮想環境にインストールしてください。LiteLLM 1.106 には Python 3.10 以降が必要です。
terminal
python -m venv .venv
source .venv/bin/activate # Windows: .venv\Scripts\activate
pip install "litellm[proxy]"
  1. config.yaml を作成します。これは実際にテストしたファイルです。DeepSeek V4.1 Flash は OpenAI 互換エンドポイント経由、Claude Sonnet 5.5 は LiteLLM の Anthropic プロバイダー経由で使い、ワイルドカードを指定すると、それ以外のすべてのモデルを zurelay/<model ID> として利用できます。model_info の価格は Zurelay の現行価格です。
config.yaml
model_list:
- model_name: deepseek-v4.1-flash
litellm_params:
model: openai/deepseek-v4.1-flash
api_base: https://api.zurelay.com/v1
api_key: os.environ/ZURELAY_API_KEY
use_chat_completions_api: true
model_info:
input_cost_per_token: 0.00000003
output_cost_per_token: 0.00000012
cache_read_input_token_cost: 0.00000000074
- model_name: claude-sonnet-5-5
litellm_params:
model: anthropic/claude-sonnet-5-5
api_base: https://api.zurelay.com
api_key: os.environ/ZURELAY_API_KEY
model_info:
input_cost_per_token: 0.00000079
output_cost_per_token: 0.00000395
cache_read_input_token_cost: 0.000000079
- model_name: zurelay/*
litellm_params:
model: openai/*
api_base: https://api.zurelay.com/v1
api_key: os.environ/ZURELAY_API_KEY
use_chat_completions_api: true
litellm_settings:
use_chat_completions_url_for_anthropic_messages: true
check_provider_endpoint: true
general_settings:
master_key: os.environ/LITELLM_MASTER_KEY
  1. 起動は、Zurelay のキーと独自のマスターキーを指定して行います。クライアントはマスターキーを送信します。LiteLLM では sk- で始まるキーが必要です。
terminal
export ZURELAY_API_KEY="zr_live_..."
export LITELLM_MASTER_KEY="sk-choose-a-long-random-key"
litellm --config config.yaml
  1. 呼び出しは、設定ファイルの model_name を使い、OpenAI 互換 API と同じ方法で行います。
terminal
curl http://localhost:4000/v1/chat/completions \
-H "Authorization: Bearer $LITELLM_MASTER_KEY" \
-H "Content-Type: application/json" \
-d '{"model": "deepseek-v4.1-flash", "messages": [{"role": "user", "content": "Hello"}]}'

または Python SDK を使う

プロキシを使わない場合は、呼び出しのたびにベース URL とキーを渡します。LiteLLM の anthropic/ プロバイダー経由で Claude を使うときのベース URL は https://api.zurelay.com で、/v1 は付けません。

app.py
import os
from litellm import completion
response = completion(
model="openai/deepseek-v4.1-flash",
api_base="https://api.zurelay.com/v1",
api_key=os.environ["ZURELAY_API_KEY"],
messages=[{"role": "user", "content": "Hello"}],
)
print(response.choices[0].message.content)
claude = completion(
model="anthropic/claude-sonnet-5-5",
api_base="https://api.zurelay.com",
api_key=os.environ["ZURELAY_API_KEY"],
messages=[{"role": "user", "content": "Hello"}],
)

LiteLLM 経由で使う Claude Code

プロキシは Anthropic の Messages API も提供するため、Claude Code を設定内のどのモデルでも動かせます。Claude Code の接続先をプロキシにし、使用するモデルを指定します:

terminal
export ANTHROPIC_BASE_URL="http://localhost:4000"
export ANTHROPIC_AUTH_TOKEN="$LITELLM_MASTER_KEY"
export ANTHROPIC_MODEL="deepseek-v4.1-flash"
export ANTHROPIC_DEFAULT_OPUS_MODEL="claude-sonnet-5-5"
export ANTHROPIC_DEFAULT_SONNET_MODEL="claude-sonnet-5-5"
export ANTHROPIC_DEFAULT_HAIKU_MODEL="deepseek-v4.1-flash"
claude

Claude モデルだけなら LiteLLM は不要です。Claude Code の料金で説明しているとおり、Claude Code は Zurelay に直接接続できます。YAML ファイルではなく Web ページで操作するルーターをお探しなら、Claude Code Router をご覧ください。

問題の原因になった設定

  1. DeepSeek で Claude Code が失敗しました。エラーは Unknown request URL: POST /v1/responses です。openai/ モデルでは、LiteLLM が Anthropic Messages リクエストを OpenAI の Responses API への呼び出しに変換しますが、Zurelay は Responses API を提供していません。1 回失敗すると LiteLLM はそのモデルをクールダウンに入れ、次のリクエストは 429 No deployments available for selected model になりました。litellm_settings の下に use_chat_completions_url_for_anthropic_messages: true を設定すると、リクエストは代わりに Chat Completions に送られます。
  2. Responses API クライアントも同じように失敗しました。 プロキシの /v1/responses や SDK の litellm.responses() へのリクエストは、モデルに use_chat_completions_api: true を設定するまで、そのまま上流に送られていました。
  3. ベース URL に /v1 を付けた Claude は /v1/v1/messages を呼び出し、404 になりました。anthropic/ プロバイダーは /v1/messages を自動で付加します。openai/ モデルには /v1 が必要です。
  4. ワイルドカードで誤ったモデルが一覧に出ました。 openai/* を指定すると、プロキシの /v1/models には Zurelay のモデルではなく、LiteLLM 組み込みの OpenAI 名 216 件(gpt-3.5-turbo、babbage-002)が表示されました。実際のモデル ID でのリクエストは問題なく動作しました。check_provider_endpoint: true を設定すると、代わりに Zurelay のモデルが表示されるようになります。
  5. Windowsでは、出力をログファイルにリダイレクトするとプロキシが起動時にクラッシュし、UnicodeEncodeError: 'charmap' codec can't encode characters が発生しました。バナーに、デフォルトのコードページにない文字が含まれているためです。PythonのUTF-8モードで解消できます。環境変数に PYTHONUTF8=1 を設定するか、python -X utf8 を使ってください。

コストの追跡

LiteLLM の利用額追跡は、独自のリストをもとにリクエストごとの料金を計算します。LiteLLM が把握しているモデルでは、その料金は各ラボの定価です。今回の Claude Sonnet 5.5 のリクエストは Anthropic の料金で計算され、Zurelay の請求額の約 2.5 倍になりました。openai/ 経由の DeepSeek V4.1 Flash のように把握していないモデルでは、コストがまったく記録されません。上の設定の model_info の行で、どちらも解決できます。この行を入れると、LiteLLM が x-litellm-response-cost ヘッダーで返したコストが請求額と一致しました。

テストでの費用

プロキシ経由で、Claude Code は DeepSeek V4.1 Flash で小さな Python ファイルを作成し、続いて Claude Sonnet 5.5 で編集しました。どちらも Claude Code のファイルツールを正しく使えていました。Zurelay の請求は次のとおりです:

モデルタスクリクエストプロンプトトークン(キャッシュ済み)料金
DeepSeek V4.1 Flashhello.py を作成339,725 (25,845)$0.0005
Claude Sonnet 5.5hello.py を編集351,310 (32,523)$0.023

各リクエストには Claude Code の指示とツール定義が含まれ、13,000〜18,000 トークンありました。2 回目以降は、その大部分がキャッシュから読み込まれました。Claude タスクについて Claude Code 自身が出した見積もりは、Anthropic の定価で $0.054 でした。その前に行った SDK 呼び出し(それぞれ短い回答 1 回)のコストは、DeepSeek で $0.000006、Claude Sonnet 5.5 で $0.0003 でした。

知っておきたいこと

  • プロキシは、--host 127.0.0.1 を渡さない限り、すべてのネットワークインターフェース(0.0.0.0)で待ち受けます。マスターキーは必ず設定してください。設定しないと、同じネットワーク上の誰でもあなたのクレジットを使えてしまいます。
  • ワイルドカードのモデルでは、プレフィックスの後ろに実際のモデル ID を指定します。リクエスト内の zurelay/gpt-6.1-terra は、Zurelay では gpt-6.1-terra になります。
  • Windows では、短いフォルダーパスにインストールしてください。一時フォルダーの深い場所に作成した仮想環境は、一部のファイルパスが Windows の 260 文字の上限を超えたため、ModuleNotFoundError: No module named 'openai.types...' で失敗しました。

接続先に設定するモデルの料金

1Mトークンあたりの、提供元の定価とZurelayの料金:

モデル入力出力Zurelayでの価格(入力 / 出力)
DeepSeek V4.1 Flash$0.30$1.20$0.03 / $0.12
Claude Sonnet 5.5$2.00$10.00$0.79 / $3.95
Claude Opus 5.5$4.00$20.00$1.40 / $7.00
GPT-6.1 Terra$1.00$5.00$0.25 / $1.25
Gemini 3.8 Flash$0.75$3.75$0.22 / $1.10
Kimi K3.1 Pro$2.00$10.00$0.80 / $4.00
GLM-5.3$1.40$4.40$0.38 / $1.21

2026年11月3日 に、Windows 上の Python 3.12、LiteLLM 1.106.6、Claude Code 2.1.317 を使い、Zurelay の API に対してテストしました。簡単なセットアップ手順はドキュメントの LiteLLMにあります。LiteLLM 公式ドキュメント: OpenAI 互換エンドポイント、プロキシ設定。

すべてのモデルを1つのOpenAI互換APIキーで、定価より安く利用できます。クレジットは$10から。サブスクリプションは不要です。APIキーを取得

よくある質問

よくある質問

ほかにご質問はありますか? チームに問い合わせると、メールでお答えします。

LiteLLM とは?

BerriAI が公開しているオープンソースの Python SDK 兼プロキシサーバーです。SDK は、OpenAI 形式の 1 つの関数で多数のモデルプロバイダーを呼び出せます。プロキシは自分で動かすサーバーで、アプリは OpenAI または Anthropic の形式で呼び出します。プロバイダーの手前で、キー管理、予算、ログ、フォールバックを担います。

LiteLLM は無料ですか?

はい。SDK とプロキシは MIT ライセンスのオープンソースです。ただし、リポジトリの enterprise フォルダーにあるエンタープライズ機能は別のライセンスです。料金がかかるのは、リクエストを送るプロバイダーの利用分だけです。

LiteLLM で OpenAI 互換 API を使うには?

モデル名の先頭に openai/ を付け、api_base にプロバイダーのベース URL(/v1 を含む)を指定します。例: model: openai/deepseek-v4.1-flash、api_base: https://api.zurelay.com/v1。キーは api_key に指定するか、プロキシの config.yaml では os.environ/NAME を使います。

LiteLLM が /v1/responses を呼び出すのはなぜですか?

openai/ モデルでは、LiteLLM は(たとえば Claude Code からの)Anthropic Messages リクエストや Responses API リクエストを、プロバイダーの Responses API に送ります。Chat Completions しか提供していないプロバイダーは 404 を返します。litellm_settings に use_chat_completions_url_for_anthropic_messages: true を、モデルに use_chat_completions_api: true を設定してください。

LiteLLM で Claude Code を使うには?

LiteLLM プロキシを config.yaml のモデルで起動し、ANTHROPIC_BASE_URL を http://localhost:4000 に、ANTHROPIC_AUTH_TOKEN をプロキシのマスターキーに設定します。さらに ANTHROPIC_MODEL と 3 つの ANTHROPIC_DEFAULT_*_MODEL 変数に設定ファイル内のモデル名を指定して、claude を実行します。

LiteLLM のコストが正しくないのはなぜですか?

LiteLLM は独自のリストをもとにリクエストの料金を計算します。把握しているモデルにはラボの定価を使い、把握していないモデルには料金を付けません。プロバイダーの実際の請求額を記録するには、各モデルの model_info に input_cost_per_token、output_cost_per_token、cache_read_input_token_cost を追加してください。

LiteLLM プロキシはどのポートを使いますか?

ポートは 4000 で、--host を指定しない限りすべてのネットワークインターフェース(0.0.0.0)で待ち受けます。ポートは --port または PORT 環境変数で変更できます。

その他のガイド

定価で払うのはもう終わり。
今日から節約を始めましょう。

数秒でキーを作成し、お使いのSDKをZurelayに接続するだけ。最初のトークンから、すべてのリクエストが最大90%安くなります。