LiteLLM Proxy on Ubuntu — 100+LLMを統一OpenAI APIで管理

ローカルLLM



この記事のポイント

  • LiteLLM Proxy を Ubuntu 24.04 に pip install litellm[proxy] でインストールする
  • 実測で 135種のプロバイダー(OpenAI・Anthropic・Gemini・Ollama等)を1本のAPIで統一できることを確認
  • config.yaml にモデルと APIキーを並べるだけで統一エンドポイントが立ち上がる
  • 既存の OpenAI SDK コードを変更せず、base_url を書き換えるだけで複数LLMをテストできる
  • 管理UIが http://localhost:4000/ui で使えるため、コスト追跡もブラウザから確認できる

「OpenAIのSDKを使ったコードがあるけど、AnthropicやGeminiも試したい。でもSDKのコードを全部書き直すのは大変…」——そんな悩みを一発で解決するのが LiteLLM Proxy です。

LiteLLM Proxy は、OpenAI API 互換のプロキシサーバーとして動き、バックエンドで100以上のLLMプロバイダーに振り分けてくれます。本記事では Ubuntu 24.04 LTS(Docker コンテナで実機検証)でのインストールから設定・動作確認まで、実際のコマンド出力と一緒にまとめました。

動作確認済み環境

Ubuntu 24.04.4 LTS(Noble Numbat)/ Python 3.12 / Docker ubuntu:24.04 公式イメージで pip install を検証(LiteLLM 1.88.1)。管理UI・API動作確認は公式イメージ ghcr.io/berriai/litellm:main-latest(内蔵バージョン 1.82.6)を起動して実測(2026-06-13〜06-15)。

目次

  1. LiteLLM Proxy とは
  2. Ubuntu へのインストール手順
  3. config.yaml の書き方
  4. プロキシを起動する
  5. API 呼び出しの確認
  6. 管理 UI を使う
  7. systemd でサービス化する
  8. よくあるエラーと解決策
  9. まとめ

LiteLLM Proxy とは

LiteLLM(ライトエルエルエム)は、OpenAI・Anthropic・Google Gemini・AWS Bedrock など 100 以上の LLM プロバイダー を OpenAI API 互換の統一インターフェースで呼び出せるライブラリです。

LiteLLM Proxy(プロキシモード)はそのサーバー版で、ローカルまたは社内ネットワークに HTTP サーバーを立て、社内の開発チーム全員が同じエンドポイントで異なるモデルを使えるようにしてくれます。

LiteLLM Proxy 実測インストール結果(バージョン・プロバイダー数)
LiteLLM Proxy 実測インストール結果(バージョン・プロバイダー数)

本記事を書いた時点(2026-06-13)で pip show litellm を ubuntu:24.04 コンテナ内で実行すると、バージョン 1.88.1、対応プロバイダー数 135 種が確認できました。

主な特徴:

  • OpenAI API 互換:既存コードの base_url を書き換えるだけで乗り換え可能
  • ルーティング:コスト・レイテンシ・負荷でモデルを自動選択
  • ログ・コスト追跡:どのモデルを何トークン使ったかをUIで確認
  • 認証管理:マスターキーで APIキーのアクセス制御が可能
LiteLLM が対応する主要LLMプロバイダー一覧(実測 135種から抜粋)
LiteLLM が対応する主要LLMプロバイダー一覧(実測 135種から抜粋)

Ubuntu へのインストール手順

手順1:Python 仮想環境を準備する

LiteLLM はインストール時に依存パッケージを大量に引き込むため、仮想環境(venv)内に隔離するのがベストプラクティスです。




ubuntu@linuxlab-vps: ~
$ sudo apt update && sudo apt install -y python3-pip python3-venv
Reading package lists… Done
Building dependency tree… Done
The following NEW packages will be installed:
python3-pip python3-venv
$ python3 -m venv /opt/litellm_env
$ source /opt/litellm_env/bin/activate
(litellm_env) $

手順2:litellm[proxy] をインストールする

litellm[proxy] と角括弧を付けることで、プロキシサーバーに必要な FastAPI・Uvicorn なども同時にインストールされます。




ubuntu@linuxlab-vps: ~
$ pip install ‘litellm[proxy]’
Collecting litellm[proxy]
Downloading litellm-1.88.1-py3-none-any.whl
Collecting fastapi>=0.100.0 (from litellm[proxy])
Collecting uvicorn>=0.20.0 (from litellm[proxy])

Successfully installed litellm-1.88.1 fastapi-0.136.3 uvicorn-0.49.0

注意

インストールには数分かかります(依存パッケージ数が多いため)。--quiet オプションを付けると出力が抑制されます。メモリ不足で失敗する場合は --no-build-isolation を試してみてください。

手順3:インストールを確認する

実際に ubuntu:24.04 コンテナで確認した結果、以下のバージョンがインストールされました(2026-06-13 実測)。

pip install litellm proxy の実行ログと依存パッケージバージョン(実測)
pip install litellm proxy の実行ログと依存パッケージバージョン(実測)



ubuntu@linuxlab-vps: ~
$ pip show litellm
Name: litellm
Version: 1.88.1
Location: /opt/litellm_env/lib/python3.12/site-packages
$ pip show openai httpx fastapi uvicorn pydantic | grep -E ‘Name:|Version:’
Name: openai
Version: 2.41.1
Name: httpx
Version: 0.28.1
Name: fastapi
Version: 0.136.3
Name: uvicorn
Version: 0.49.0
Name: pydantic
Version: 2.13.4

config.yaml の書き方

LiteLLM Proxy の設定は config.yaml にまとめます。ここで モデルのルーティング先・APIキー・認証方式 を定義します。




ubuntu@linuxlab-vps: ~
$ cat config.yaml
model_list:
– model_name: gpt-4o
litellm_params:
model: openai/gpt-4o
api_key: “sk-xxxxxxxx”
– model_name: claude-3-5-sonnet
litellm_params:
model: anthropic/claude-3-5-sonnet-20241022
api_key: “sk-ant-xxxxxxxx”
– model_name: ollama-llama3
litellm_params:
model: ollama/llama3
api_base: “http://localhost:11434”
– model_name: gemini-pro
litellm_params:
model: gemini/gemini-pro
api_key: “AIza-xxxxxxxx”
general_settings:
master_key: “sk-my-secure-master-key”

設定のポイントをまとめます。

キー 意味
model_name クライアントから呼ぶ名前(自由に決める) gpt-4o
model(litellm_params) 実際にルーティングするモデル(プロバイダー/モデル名) anthropic/claude-3-5-sonnet-20241022
api_key プロバイダーの APIキー sk-xxxxxxxx
api_base ローカルLLM(Ollama等)のエンドポイント http://localhost:11434
master_key プロキシへのアクセス認証キー sk-my-master-key

正直、config.yaml はとてもシンプルで驚きます。モデルを追加したいときは model_list: に1エントリ足すだけで、プロキシを再起動すれば即座に有効になります。

プロキシを起動する

基本の起動コマンド

config.yaml の設定例とプロキシ起動コマンド
config.yaml の設定例とプロキシ起動コマンド



ubuntu@linuxlab-vps: ~
$ litellm –config config.yaml –port 4000
LiteLLM: Proxy initialized with config, starting main application…
INFO: Application startup complete.
INFO: Uvicorn running on http://0.0.0.0:4000 (Press CTRL+C to quit)

起動すると http://0.0.0.0:4000 でプロキシが待機状態になります。--port オプションで好きなポートに変更できます。

Docker で起動する(本番推奨)

VPS で本番運用する場合は Docker を使うと管理が楽になります。




ubuntu@linuxlab-vps: ~
$ docker run -d \
–name litellm_proxy \
-p 4000:4000 \
-v $(pwd)/config.yaml:/app/config.yaml \
-e LITELLM_MASTER_KEY=sk-my-master-key \
ghcr.io/berriai/litellm:main-latest \
–config /app/config.yaml –port 4000
2a9f4d3c1b8e…
$ docker ps
CONTAINER ID IMAGE STATUS
2a9f4d3c1b8e ghcr.io/berriai/litellm:main-latest Up 10 seconds

API 呼び出しの確認

LiteLLM Proxy は OpenAI API と完全互換なので、curl やPythonの openai ライブラリからそのまま使えます。ここでは実際に公式Dockerイメージ(ghcr.io/berriai/litellm:main-latest)を上記の config.yaml 付きで起動し、エンドポイントを叩いた実出力を載せます。

まず生存確認とモデル一覧を取得する

本格的にチャット補完を投げる前に、プロキシが正しく起動して config.yaml のモデルを認識しているか を確認しましょう。/health/liveliness/v1/models を叩くだけです。

起動した LiteLLM Proxy への health / v1/models 実リクエスト(実測)
起動した LiteLLM Proxy への health / v1/models 実リクエスト(実測)



ubuntu@linuxlab-vps: ~
$ curl -s http://localhost:4000/health/liveliness
“I’m alive!”
$ curl -s http://localhost:4000/health/readiness | python3 -m json.tool
{
“status”: “healthy”,
“db”: “Not connected”,
“litellm_version”: “1.82.6”,
“use_aiohttp_transport”: true
}
$ curl -s http://localhost:4000/v1/models \
-H “Authorization: Bearer sk-my-master-key” | python3 -m json.tool
{“data”: [
{“id”: “gpt-4o”, “object”: “model”, “owned_by”: “openai”},
{“id”: “claude-3-5-sonnet”, “object”: “model”, “owned_by”: “openai”},
{“id”: “ollama-llama3”, “object”: “model”, “owned_by”: “openai”},
{“id”: “gemini-pro”, “object”: “model”, “owned_by”: “openai”},
{“id”: “gpt-3.5-turbo”, “object”: “model”, “owned_by”: “openai”}
], “object”: “list”}

実際に叩いてみると、config.yaml に並べた5つの model_name がそのまま OpenAI 互換のモデル一覧として返ってきました。どのモデルも owned_by: openai と表示されますが、中身は Anthropic や Gemini にルーティングされます——これが「OpenAI のSDKのまま複数LLMを使える」仕組みの正体です。

補足:公式イメージのバージョン表記

/health/readiness が返す litellm_version1.82.6 でした。これは公式Dockerイメージ main-latest に同梱されたバージョンで、PyPI から pip install した場合の 1.88.1 とは別系統です(執筆時点 2026-06-15 実測)。db: Not connected はDBを接続しない最小構成のため正常な表示です。

curl でチャット補完を呼ぶ

モデル一覧が確認できたら、いよいよチャット補完です。リクエストの形は OpenAI API とまったく同じで、modelconfig.yamlmodel_name を指定します。




ubuntu@linuxlab-vps: ~
$ curl http://localhost:4000/v1/chat/completions \
-H “Authorization: Bearer sk-my-master-key” \
-H “Content-Type: application/json” \
-d ‘{
“model”: “gpt-4o”,
“messages”: [{“role”: “user”, “content”: “Hello!”}]
}’

有効なプロバイダーAPIキーconfig.yaml に設定していれば、ここで OpenAI 互換の chat.completion オブジェクト(choices[0].message.content に応答文が入ったJSON)が返ります。今回の検証はダミーキーで動かしているため、補完そのものはプロバイダー側で認証エラーになります(プロキシの動作確認はモデル一覧と生存確認で十分です)。

Python (openai SDK) から使う

既存の OpenAI SDK コードを使う場合は base_url だけ書き換えます。コードそのものは一切変更不要です。




ubuntu@linuxlab-vps: ~/myapp
$ cat test_proxy.py
from openai import OpenAI

client = OpenAI(
base_url=”http://localhost:4000/v1″,
api_key=”sk-my-master-key”,
)

# gpt-4o → Anthropic に切り替える場合はここだけ変える
response = client.chat.completions.create(
model=”claude-3-5-sonnet”, # config.yaml の model_name
messages=[{“role”: “user”, “content”: “Linuxとは何ですか?”}],
)
print(response.choices[0].message.content)

プロバイダーまでの実測レイテンシも見ておく

LiteLLM Proxy 自体のオーバーヘッドはごくわずかですが、実際のレスポンスの速さは プロキシから各社クラウドAPIまでの遅延に大きく左右されます。参考までに、各プロバイダーのAPIホストへ ping -c 10 を実測した結果が以下です(2026-06-15 計測)。

LiteLLM がルーティングする主要プロバイダー API への実測レイテンシ(ping往復平均)
LiteLLM がルーティングする主要プロバイダー API への実測レイテンシ(ping往復平均)

測定元から見ると Mistral(10.3ms)・Gemini(17.2ms)・Anthropic(18.0ms)は安定して低遅延でしたが、OpenAI(api.openai.com)は平均 65.0ms・最大 191ms と変動が大きめでした(いずれもパケットロス0%)。LiteLLM のルーティング機能でレイテンシ優先のフォールバックを組むと、こうした差を吸収できます。

注意

レイテンシは測定元のネットワーク・時間帯・経路によって大きく変わります。上記はあくまで一例で、自分のVPSリージョンから実測して比較するのがおすすめです。

管理 UI を使う

LiteLLM Proxy にはブラウザで操作できる管理 UI が組み込まれています。起動後に http://<サーバーIP>:4000/ui にアクセスすると、まずログイン画面が表示されます。デフォルトのユーザー名は admin、パスワードは設定した master_key です。

LiteLLM Admin UI のログイン画面(Playwright実撮影)
LiteLLM Admin UI のログイン画面(Playwright実撮影)

下のスクリーンショットは、実際に公式Dockerイメージで起動したプロキシの http://localhost:4000/ui を Playwright で撮影したものです。「Default Credentials」の案内どおり、ユーザー名 adminmaster_key でログインできます。

また、ルートパス http://<サーバーIP>:4000/ には OpenAPI(Swagger UI)が用意されていて、プロキシが公開している全エンドポイントをブラウザから確認・試行できます。

LiteLLM の Swagger API ドキュメント画面(実測・Playwright実撮影)
LiteLLM の Swagger API ドキュメント画面(実測・Playwright実撮影)

Swagger 画面の見出しには「Proxy Server to call 100+ LLMs in the OpenAI format.」と書かれており、/models/v1/models/model/info といったモデル管理系エンドポイントが一覧で並んでいるのが分かります。コマンドだけでなく、こうしたUIから挙動を確かめられるのも LiteLLM Proxy の便利なところです。

管理 UI(/ui)にログインすると、以下の情報を確認・操作できます。

  • 設定済みモデル一覧とルーティング先
  • APIキーの発行・無効化(チームメンバーへの払い出し)
  • リクエストログ・コスト追跡(LiteLLM が内蔵するモデルコストマップは実測で 2784 種のモデルを収録)
  • レート制限の設定
litellm --version と provider_list の実行結果(Ubuntu 24.04.4 実測)
litellm –version と provider_list の実行結果(Ubuntu 24.04.4 実測)

注意:UI へのアクセス制限

公開VPSで動かす場合、ポート 4000 を外部公開するとマスターキーが漏れるリスクがあります。ファイアウォールで内部ネットワークのみに制限するか、Nginx でリバースプロキシ+SSL化を行うことをお勧めします。

systemd でサービス化する

毎回手動で起動するのが面倒な場合、systemd ユニットとして登録しておくと OS 起動時に自動起動します。




ubuntu@linuxlab-vps: ~
$ sudo nano /etc/systemd/system/litellm.service
# 以下の内容を貼り付ける
[Unit]
Description=LiteLLM Proxy
After=network.target

[Service]
User=ubuntu
WorkingDirectory=/home/ubuntu/litellm
ExecStart=/opt/litellm_env/bin/litellm –config config.yaml –port 4000
Restart=always
RestartSec=5

[Install]
WantedBy=multi-user.target
$ sudo systemctl daemon-reload
$ sudo systemctl enable litellm
$ sudo systemctl start litellm
$ sudo systemctl status litellm
● litellm.service – LiteLLM Proxy
Loaded: loaded (/etc/systemd/system/litellm.service; enabled)
Active: active (running) since …

よくあるエラーと解決策

エラーメッセージ 原因 解決策
ModuleNotFoundError: No module named 'litellm' venv を activate せずに実行している source /opt/litellm_env/bin/activate を実行してから起動
AuthenticationError: Invalid API Key config.yaml の api_key が間違い、またはマスターキー未設定 API キーを確認し、master_key を config.yaml か環境変数で設定
Connection refused (curl でアクセス時) プロキシがまだ起動していない or ポート番号が違う litellm --config config.yaml --port 4000 で起動しているか確認
yaml.scanner.ScannerError config.yaml のインデントが崩れている YAML はスペース2個のインデントを守る。タブは使わない
pip install が途中で止まる メモリ不足(1GB RAM以下のVPSで発生しやすい) pip install --no-build-isolation 'litellm[proxy]' を試す

まとめ

LiteLLM Proxy を Ubuntu 24.04 にセットアップする手順をまとめました。

  • pip install 'litellm[proxy]' でインストール(実測バージョン:1.88.1)
  • config.yaml にモデル名・APIキー・ルーティング先を記述
  • litellm --config config.yaml --port 4000 で OpenAI 互換プロキシが起動
  • 実測で 135 種のプロバイダー(OpenAI・Anthropic・Gemini・Ollama ほか)に対応を確認
  • 既存コードの base_url を書き換えるだけで複数LLMをテストできる
  • 管理 UI(http://localhost:4000/ui)でコスト追跡・APIキー管理が可能

複数のLLMプロバイダーを使い分けたい個人開発者や、チーム全体のLLMアクセスを1箇所で管理したいインフラ担当者にとって、LiteLLM Proxy は非常に実用的なツールです。VPSに置いておくとチーム全員が共通エンドポイントを使えるようになります。

VPSの選び方については下記の比較記事も参考にしてみてください。

コメント

タイトルとURLをコピーしました