LiteLLM — OpenAI・Anthropic・Gemini など 100 種類以上の LLM を統一 API で呼び出せる OSS AI ゲートウェイ

タグ LiteLLMAI ゲートウェイOpenAIAnthropicGeminiプロキシサーバーコスト管理OSScolumnコラムlinuxLinuxwindowsWindowsGitHubオープンソースBerriAIlitellm

LiteLLM — OpenAI・Anthropic・Gemini など 100 種類以上の LLM を統一 API で呼び出せる OSS AI ゲートウェイ

ひとことでいうと

LiteLLM は、OpenAI・Anthropic・Gemini・AWS Bedrock など 100 種類以上の AI サービスを、同じ書き方のコードで呼び出せるオープンソースのツールです。普通は AI サービスごとにコードの書き方が異なりますが、LiteLLM を使えばモデル名を変えるだけで別のサービスに切り替えられます。アプリに直接組み込む「Python ライブラリ」としての使い方と、チーム全体で共有する「プロキシサーバー(中継役のサーバー)」としての使い方の 2 通りがあります。Stripe・Netflix・Google ADK・OpenHands など多くのプロジェクトで採用されており、個人開発から企業の本番環境まで幅広く使われています。

こんな人におすすめ

1. 複数の AI サービスを使い分けたい開発者 OpenAI から Anthropic や Gemini に切り替えたいとき、LiteLLM を使えばモデル名を書き換えるだけで対応できます。API の呼び出し方を根本から書き直す必要がないため、実験や比較がとても楽になります。

2. チームや組織で AI の利用状況を管理したいエンジニア プロキシサーバー機能を使うと、メンバーごとの「仮想キー(Virtual Keys)」を発行してアクセスを制限したり、プロジェクト単位で費用を追跡したりできます。AI の使いすぎや不正利用の防止にも役立ちます。

3. コストや応答速度を気にしながら AI アプリを開発したい人 API を呼び出すたびにトークン数(使用量の単位)と費用がレスポンスに含まれるため、使用量の監視やコスト超過アラートを自前で実装しやすいです。管理ダッシュボードも提供されており、リアルタイムで状況を把握できます。

インストール・使い方

LiteLLM には、Python ライブラリとして使う方法と、プロキシサーバーとして立てる方法の 2 種類があります。まずはシンプルな Python ライブラリから試してみましょう。

「ターミナル」とは、文字を入力してパソコンに命令を送る画面のことです。Mac なら「ターミナル」アプリ、Windows なら「PowerShell」がそれにあたります。以下のコマンドはコピー&ペーストで入力できます。


Python ライブラリとして使う

Step 1. パッケージをインストールする

pip install litellm

pip は Python のパッケージ(追加機能のまとまり)を取得するためのコマンドです。uv という高速なツールを使っている方は uv add litellm でも構いません。

Step 2. 使いたい AI サービスの API キーを設定する

export OPENAI_API_KEY="your-openai-key"
export ANTHROPIC_API_KEY="your-anthropic-key"

API キーとは、AI サービスを使うための「合言葉」のようなものです。各サービスの管理画面から取得してください。export はターミナルで環境変数(プログラムが参照する設定値)を登録するコマンドです。

Step 3. Python のコードから AI を呼び出す

from litellm import completion

# OpenAI の GPT-4o を呼び出す
response = completion(
    model="openai/gpt-4o",
    messages=[{"role": "user", "content": "こんにちは!"}]
)
print(response.choices[0].message.content)

# Anthropic の Claude に切り替えるには、model 名を変えるだけ
response = completion(
    model="anthropic/claude-sonnet-4-20250514",
    messages=[{"role": "user", "content": "こんにちは!"}]
)

from litellm import completion は LiteLLM の completion という機能を読み込む命令です。model= の部分を書き換えるだけで、まったく同じコードで別の AI サービスを呼び出せます。


プロキシサーバー(中継サーバー)として使う

チームで共有したり、管理機能を使ったりしたい場合はプロキシサーバーとして立てる方法がおすすめです。

Step 1. プロキシ用パッケージをインストールする

pip install 'litellm[proxy]'

[proxy] をつけることで、サーバー機能に必要な追加ライブラリも一緒にインストールされます。

Step 2. プロキシサーバーを起動する

litellm --model gpt-4o

このコマンドを実行すると、ローカル(自分のパソコン内)にサーバーが立ち上がります。デフォルトでは http://0.0.0.0:4000 というアドレスでアクセス可能になります。

Step 3. 既存の OpenAI クライアントから接続する

import openai

client = openai.OpenAI(
    api_key="anything",             # ゲートウェイが管理するので何でもよい
    base_url="http://0.0.0.0:4000"  # プロキシのアドレスを指定
)
response = client.chat.completions.create(
    model="gpt-4o",
    messages=[{"role": "user", "content": "こんにちは!"}]
)

base_url を LiteLLM プロキシのアドレスに変えるだけで、すでに OpenAI クライアントを使っているアプリをそのままプロキシ経由に切り替えられます。実際のプロバイダーの API キーはサーバー側で管理するため、クライアント側に直接キーを渡す必要がなくなります。

動かしてみた

Docker(仮想的な実行環境を作るツール)を使ったコンテナ内で、Python 3.12.13 への pip インストールが正常に完了することを確認しました。インストール自体はスムーズに行われ、パッケージが問題なく導入されます。

リポジトリ(ソースコードの置き場)の構成を確認したところ、以下のような主要ファイルが含まれていました。

  • litellm/router.py — 複数プロバイダーへの振り分けやフォールバック処理を担当
  • litellm/cost_calculator.py — トークン単価をもとにコストを計算する機能
  • litellm/exceptions.py — エラーの種類を整理して扱いやすくする処理
  • litellm/scheduler.py — リクエストのスケジューリングを管理

また、litellm/model_prices_and_context_window_backup.json というファイルには、対応している各モデルのトークン単価と最大コンテキスト長(一度に処理できるテキストの最大量)がまとめられており、コスト計算機能がパッケージに最初から組み込まれていることが分かります。継続的インテグレーション(コードの品質を自動チェックする仕組み)の設定ファイルも整備されており、ライブラリとしての信頼性が高いことが伺えます。

ブラウザで試す

LiteLLM はブラウザ上でそのまま動作を体験できるデモを提供しています。使いたいプロバイダーとモデルを選んで自分の API キーを入力し、メッセージを送信すると、実際の AI からの返答とトークン使用量が表示されます。インストールなしで API の挙動を確認できるため、導入前の動作確認や検証にも便利です。

実践のコツ — はじめての一歩

LiteLLM を使いはじめるときに役立つポイントをまとめました。

  • まず 1 プロバイダーだけで試す — 手持ちの API キーがあるサービス(OpenAI など)で completion() を動かしてみましょう。動作が確認できたら、model= を書き換えるだけで他のサービスへ切り替えられます。
  • Router でフォールバックを設定する — 本番環境では Router を使って複数のプロバイダーをリストに並べておくと、1 つが落ちたときに自動で別のサービスへ切り替わります。
from litellm import Router

router = Router(
    model_list=[
        {
            "model_name": "gpt-4-fallback",
            "litellm_params": {"model": "openai/gpt-4o"}
        },
        {
            "model_name": "gpt-4-fallback",
            "litellm_params": {"model": "anthropic/claude-3-5-sonnet-20241022"}
        },
    ],
    num_retries=2,
    fallbacks=[{"openai/gpt-4o": ["anthropic/claude-3-5-sonnet-20241022"]}]
)

response = router.completion(
    model="gpt-4-fallback",
    messages=[{"role": "user", "content": "テスト"}]
)
  • レスポンスのコスト情報を活用するresponse オブジェクトにはトークン使用数が含まれています。ログに残しておくだけで、あとから費用を集計したり、使いすぎを検知したりできます。
  • プロキシを立てたらダッシュボードを確認する — プロキシサーバーには管理 UI が用意されています。どのモデルがどれだけ呼ばれているかをグラフで確認できるので、チームでの運用に便利です。
  • API キーはプロキシ側で一元管理する — チームで使う場合は、プロバイダーの実 API キーをプロキシだけが持ち、メンバーには仮想キーを配布する運用が安全です。実キーが漏洩するリスクを大幅に下げられます。

活用アイデア

  • 複数モデルの比較検証 — 同じプロンプトを OpenAI・Anthropic・Gemini に送り、回答品質や速度・コストを比べる検証ツールとして使えます。最適なモデルを選ぶ判断材料を手軽に集められます。

  • フォールバック付き本番 API — Router で主要プロバイダーと予備プロバイダーをリストに並べておくと、障害発生時も自動で切り替わる堅牢な AI バックエンドを構築できます。

  • チームの LLM 利用管理 — プロキシサーバーを社内に立て、メンバーに仮想キーを配布する運用を取り入れると、誰がいつどのモデルをどれだけ使ったかを追跡でき、コスト超過や不正利用を防止できます。

  • コスト管理付きアプリ開発 — レスポンスに含まれるトークン数とコスト情報をデータベースに記録しておくだけで、ユーザーごとの使用量レポートや予算超過アラートを実装できます。

  • MCP ツール連携 AI アシスタント — MCP サーバーを LiteLLM 経由で任意の LLM につなぐことで、Web 検索・ファイル操作・カレンダー参照などのツールを使える AI アシスタントを構築できます。

  • マルチエージェントシステムの基盤 — LangGraph や Pydantic AI などのフレームワークと A2A プロトコルで連携することで、複数の AI エージェントが協調して動く複雑なワークフローの通信基盤として利用できます。

用語とポイント解説

LLM(Large Language Model) 大量のテキストデータで学習した、文章を理解・生成するための AI モデルのことです。かんたんに言うと「賢い文章を書いてくれる AI の中身」のことで、GPT-4o や Claude などが代表例です。LiteLLM は、こうした LLM を統一した方法で扱えるようにするためのツールです。

プロバイダー AI モデルを提供している企業やサービスのことです。かんたんに言うと「AI を貸してくれる業者」で、OpenAI・Anthropic・Google(Gemini)・Amazon(Bedrock)などが該当します。LiteLLM は 100 種類以上のプロバイダーに対応しています。

API(Application Programming Interface) 異なるソフトウェア同士が情報をやり取りするための「窓口」のことです。かんたんに言うと「サービスに命令を送るための決まった方法」で、LiteLLM は各プロバイダーの API の書き方の違いを吸収して、同じコードでどこにでも繋がるようにします。

AI Gateway(AI ゲートウェイ) 複数の LLM プロバイダーへのアクセスをまとめて管理する中継サーバーのことです。かんたんに言うと「AI サービスへの玄関口を 1 か所にまとめる仕組み」で、認証・コスト管理・アクセス制限などをここで一元管理できます。LiteLLM のプロキシ機能がこれに相当します。

Virtual Keys(仮想キー) ゲートウェイが発行する「仮のアクセス権」のことです。かんたんに言うと「本物の API キーを隠しながらメンバーに配れる合言葉」で、実際のプロバイダーキーを隠したまま、チームやプロジェクト単位でアクセス制限を設定できます。

Router(ルーター) 複数の LLM に対してリクエストを振り分ける機能のことです。かんたんに言うと「どの AI に頼むかを自動で判断してくれる交通整理係」で、リトライ・フォールバック(予備への切り替え)・ロードバランシング(負荷の分散)をサポートします。

フォールバック(Fallback) メインの処理が失敗したときに、あらかじめ決めておいた予備の処理に自動で切り替える仕組みのことです。かんたんに言うと「もし OpenAI がつながらなかったら Anthropic に頼む」という設定で、本番環境の安定性を高めるうえで欠かせない機能です。

トークン(Token) LLM がテキストを処理するときの単位で、おおよそ 1 単語〜数文字に相当します。かんたんに言うと「AI が文章を読み書きするときの課金の基本単位」で、使ったトークン数によって料金が決まります。LiteLLM はリクエストごとのトークン数とコストを自動で計算してくれます。

MCP(Model Context Protocol) ツールや外部サービスを LLM に接続するためのオープン標準プロトコルです。かんたんに言うと「AI がいろんな道具を使えるようにするための共通ルール」で、Anthropic が提唱しました。LiteLLM はこの MCP に対応しており、MCP サーバーを任意の LLM に接続するブリッジとして機能します。

A2A(Agent-to-Agent) 複数の AI エージェント(自律的に動く AI プログラム)が互いにメッセージをやり取りするためのプロトコルです。かんたんに言うと「AI 同士が連絡を取り合うための共通の話し方」で、LangGraph や Pydantic AI などのフレームワークと組み合わせて、複数エージェントの通信を標準化できます。

Guardrails(ガードレール) LLM の出力を検証・フィルタリングする安全機能のことです。かんたんに言うと「AI が不適切なことを言わないようにする安全装置」で、機密情報の漏洩や不適切なコンテンツの出力を防ぐために使います。LiteLLM のプロキシ機能に組み込まれています。


LiteLLM は、AI サービスの乗り換えコストを大幅に下げながら、コスト管理・アクセス制御・フォールバックといった実運用に必要な機能をひとまとめに提供してくれるツールです。ぜひ複数モデルの比較検証や、チームでの LLM 利用コスト管理などに活用してみてはいかがでしょうか。