動作確認済み環境
Ubuntu 24.04.4 LTS / Python 3.12.13(python:3.12-slim Docker イメージで実測)/ LiteLLM 1.89.3 / 2026-06-21 確認
「ChatGPT と Claude を同じコードで切り替えたい」「社内のアプリが OpenAI API に直結していてプロバイダーを変えづらい」— こういった悩みを一発で解決するのが LLM Gateway(LLMゲートウェイ)です。
本記事では、Ubuntu 24.04 LTS 上で最も普及している OSS の LLM ゲートウェイ「LiteLLM」のセットアップ手順を、インストールから systemd 常駐化まで解説します。クライアント側コードを一切変えずに、OpenAI・Anthropic・ローカルの Ollama を切り替えられるようになるのが目標です。なお、LiteLLM 1.89.3 と Python 3.12.13 の組み合わせを実際にインストールし、バージョンと起動オプションを確認しています。
この記事のポイント
- LiteLLM は
pip install 'litellm[proxy]'一発でセットアップ可能 - OpenAI・Anthropic・Ollama など 100+ プロバイダーを OpenAI 互換 API で統一
config.yamlにモデル名とAPIキーを書くだけで複数プロバイダーを管理- systemd で常駐化すれば VPS 再起動後も自動で起動する
- LiteLLM UI(Web ダッシュボード)でリクエストログとコストをリアルタイム確認できる
目次
- LLM Gateway(LiteLLM)とは何か
- インストール手順
- config.yaml を書く
- 起動して動作確認
- LiteLLM UI でダッシュボードを見る
- systemd で常駐化する
- よくあるエラーと解決策
- まとめ
LLM Gateway(LiteLLM)とは何か
LLM ゲートウェイは、複数の AI プロバイダーへのリクエストを 一本の統一 API(OpenAI 互換フォーマット) で受け付け、背後でそれぞれのプロバイダー向けに変換・転送するプロキシです。

クライアント(Python スクリプトや LangChain アプリ)は http://localhost:4000 にリクエストを送るだけ。「モデル名」として gpt-4o・claude-haiku・llama3-local などを指定すれば、LiteLLM がそれぞれのプロバイダー API に振り分けてくれます。
LiteLLM の設計上、config.yaml の 1 行を書き換えるだけでプロバイダーを切り替えられます。本番コードを変えずに翌週から Anthropic Claude に全リクエストを流す、といった運用が可能です。
LiteLLM が対応するプロバイダー

OpenAI・Anthropic だけでなく、AWS Bedrock・Azure OpenAI・Google Gemini・Groq・ローカルの Ollama まで、2026年6月時点で 100 以上のプロバイダーとモデルに対応しています(LiteLLM 公式ドキュメント参照)。
インストール手順
手順1:前提パッケージを確認する
Python 3.10 以上と pip が必要です。Ubuntu 24.04 LTS には Python 3.12 が標準で入っています。
Python 3.12.13
$ pip –version
pip 25.0.1 from /usr/local/lib/python3.12/site-packages/pip (python 3.12)
手順2:venv を作成してLiteLLMをインストールする
システム Python を汚さないよう、仮想環境(venv)を使います。

$ /opt/llmgw/bin/pip install ‘litellm[proxy]’
Collecting litellm[proxy]
Downloading litellm-1.89.3-py3-none-any.whl
Collecting openai anthropic httpx uvicorn …
Successfully installed litellm-1.89.3 openai-… uvicorn-…
$ /opt/llmgw/bin/litellm –version
LiteLLM: Current Version = 1.89.3
注意
litellm[proxy] は依存パッケージが多く、インストールに数分かかります。pip のバージョンが古い場合は pip install --upgrade pip を先に実行してください。
config.yaml を書く
LiteLLM の動作は config.yaml で定義します。どのプロバイダーをどの仮想モデル名で呼ぶか、APIキーをどう渡すかをここに書きます。

model_list:
– model_name: gpt-4o
litellm_params:
model: openai/gpt-4o
api_key: “os.environ/OPENAI_API_KEY”
– model_name: claude-haiku
litellm_params:
model: anthropic/claude-haiku-4-5
api_key: “os.environ/ANTHROPIC_API_KEY”
– model_name: llama3-local
litellm_params:
model: ollama/llama3.2
api_base: http://localhost:11434
litellm_settings:
drop_params: true
max_budget: 10.0 # 月$10 上限
general_settings:
master_key: “os.environ/LITELLM_MASTER_KEY”
EOF
os.environ/OPENAI_API_KEY という書き方が LiteLLM の書式です。APIキーをファイルに直書きせず、環境変数から読み込むのがポイントです。
環境変数ファイルを用意する
OPENAI_API_KEY=sk-xxxxxxxxxxxxxxxxxxxx
ANTHROPIC_API_KEY=sk-ant-xxxxxxxxxxxx
LITELLM_MASTER_KEY=sk-linuxlab-your-key
EOF
$ chmod 600 /opt/llmgw/.env
セキュリティ注意
.env ファイルには APIキーが含まれます。chmod 600 でオーナーのみ読み書きできるよう権限を制限してください。git 管理下に置く場合は .gitignore に追記を忘れずに。
起動して動作確認
手順3:LiteLLM プロキシを起動する

docker で litellm --help を実行して確認した主要オプションは上の図の通りです。--port でリッスンポートを指定します(デフォルト 4000)。設定ファイルは --config で渡します。
$ /opt/llmgw/bin/litellm –config /opt/llmgw/config.yaml –port 4000
# 起動成功すると Uvicorn が http://0.0.0.0:4000 でリッスン開始
# LiteLLM: Proxy initialized with Config のメッセージが表示される
手順4:curl で動作確認する
LiteLLM が起動したら、別ターミナルから curl でリクエストを送って確認します。OpenAI API と全く同じフォーマットです。
-H “Authorization: Bearer sk-linuxlab-your-key” \
-H “Content-Type: application/json” \
-d ‘{“model”: “gpt-4o”, “messages”: [{“role”:”user”,”content”:”hello”}]}’
# OPENAI_API_KEY が正しければ OpenAI から応答が返る
# model を “claude-haiku” に変えれば Anthropic に自動でルーティング
モデルを claude-haiku に変えてもリクエスト形式は同じです。クライアント側コードの変更なしにプロバイダーを切り替えられる — これが LiteLLM ゲートウェイの本質です。
ヘルスチェック
# {“status”: “healthy”} が返れば起動成功
LiteLLM の機能と UI
LiteLLM には Web ダッシュボードが付属しており、http://localhost:4000/ui でリクエスト数・レイテンシ・コストをリアルタイムに確認できます。公式ドキュメント(docs.litellm.ai)には設定例・API リファレンス・各プロバイダーのパラメータ対応表が網羅されています。

クイックスタートガイドには config.yaml の最小構成・litellm --config コマンドの例・各プロバイダーへの切り替え方が順を追って説明されています。セットアップで詰まったときはまずここを参照するのが確実です。

PyPI 上の LiteLLM パッケージページ(pypi.org/project/litellm/)では最新バージョンと変更履歴が確認できます。2026年6月時点での最新安定版は 1.89.3(実測確認)でした。

systemd で常駐化する
VPS を再起動しても LiteLLM が自動で起動するよう、systemd のサービスとして登録します。
手順5:専用ユーザーを作成する
$ sudo chown -R llmgw:llmgw /opt/llmgw
手順6:systemd ユニットファイルを作成する
Description=LiteLLM LLM Gateway Proxy
After=network.target
[Service]
Type=simple
User=llmgw
WorkingDirectory=/opt/llmgw
ExecStart=/opt/llmgw/bin/litellm –config /opt/llmgw/config.yaml –port 4000
EnvironmentFile=/opt/llmgw/.env
Restart=always
RestartSec=5
Environment=PYTHONUNBUFFERED=1
[Install]
WantedBy=multi-user.target
手順7:サービスを有効化・起動する
$ sudo systemctl enable litellm
$ sudo systemctl start litellm
$ sudo systemctl status litellm
# Active: active (running) が表示されれば起動成功
よくあるエラーと解決策
①「Port 4000 is already in use」
ポート 4000 が他のプロセスに使われています。確認・終了するか、--port 8080 等で別ポートに変えます。
# 出力例: LISTEN 0 128 0.0.0.0:4000 … users:((“python3”,pid=XXXX,…))
$ sudo kill <表示された PID>
②「AuthenticationError: No API key provided」
環境変数が LiteLLM のプロセスに渡っていません。source /opt/llmgw/.env を実行してから再起動するか、systemd の EnvironmentFile= を確認してください。
③「LiteLLM: Model Not found」
config.yaml に書いた model_name と、リクエストで指定した model が一致していません。model_name: gpt-4o と書いたなら、クライアントでも "model": "gpt-4o" を指定します。
④ Ollama ローカルモデルへの接続失敗
Ollama が起動しているか確認します。LiteLLM と Ollama を別々に起動する必要があります。
{“models”:[{“name”:”llama3.2:latest”,…}]}
まとめ
LiteLLM を Ubuntu 24.04 LTS 上でセットアップし、OpenAI・Anthropic・Ollama ローカルモデルを統一 API で扱えるゲートウェイを構築しました。
- インストールは
pip install 'litellm[proxy]'の一行 config.yamlでモデル名とプロバイダーを対応付け、APIキーは環境変数で管理- systemd に登録することで VPS 再起動後も自動起動
- LiteLLM UI でリクエストログとコストをリアルタイム確認できる
本格的に VPS で運用するなら、ファイアウォールで 4000 番ポートを外部に開放せず、リバースプロキシ(Nginx 等)越しに HTTPS で公開するのがおすすめです。
VPS 選びに迷ったら、Ubuntu サーバー初期設定のまとめも参考にどうぞ。Docker ベースの LLM 環境については Ubuntu に Docker をインストールする手順をあわせて読むと理解が深まります。


コメント