Home
Login

統一LLM API呼び出しゲートウェイ。100以上の大規模言語モデルプロバイダーのOpenAI形式の呼び出しをサポート。

NOASSERTIONPython 24.4kBerriAI Last Updated: 2025-06-21

LiteLLM - 大規模言語モデルAPI呼び出しの統一ゲートウェイ

プロジェクト概要

LiteLLMは、オープンソースのPython SDKおよびプロキシサーバー(LLMゲートウェイ)であり、Bedrock、Azure、OpenAI、VertexAI、Cohere、Anthropic、Sagemaker、HuggingFace、Replicate、Groqなどの主要プロバイダーを含む100以上の大規模言語モデルAPIをOpenAI形式で呼び出すことができます。

GitHubアドレス:https://github.com/BerriAI/litellm

主要機能

1. 統一API形式

  • 入力形式の標準化:すべてのプロバイダーの入力を統一形式に変換
  • 出力形式の一貫性:テキスト応答は常に['choices'][0]['message']['content']で取得可能
  • 多端点サポート:completion、embedding、image_generation端点をサポート

2. 高可用性保証

  • 再試行/フォールバックロジック:複数のデプロイメント間での自動再試行とフォールバックをサポート(Azure/OpenAIなど)
  • ルーティング機能:最適な利用可能なモデルへのインテリジェントなルーティング
  • 負荷分散:複数のデプロイメント間でリクエスト負荷を分散

3. コストと権限の制御

  • 予算管理:プロジェクト、APIキー、モデルごとに予算制限を設定
  • レート制限:API呼び出しの過剰な使用を防止
  • 使用状況追跡:詳細な呼び出し統計とコスト分析

主な特徴

Python SDK使用例

基本的な呼び出し
from litellm import completion
import os


os.environ["OPENAI_API_KEY"] = "your-openai-key"
os.environ["ANTHROPIC_API_KEY"] = "your-anthropic-key"

messages = [{"content": "Hello, how are you?", "role": "user"}]

# OpenAI
response = completion(model="openai/gpt-4o", messages=messages)

# Anthropic
response = completion(model="anthropic/claude-3-sonnet-20240229", messages=messages)
非同期呼び出しのサポート
from litellm import acompletion
import asyncio

async def test_get_response():
    user_message = "Hello, how are you?"
    messages = [{"content": user_message, "role": "user"}]
    response = await acompletion(model="openai/gpt-4o", messages=messages)
    return response

response = asyncio.run(test_get_response())
ストリーミング応答
from litellm import completion

response = completion(model="openai/gpt-4o", messages=messages, stream=True)
for part in response:
    print(part.choices[0].delta.content or "")

プロキシサーバー機能

迅速な起動
pip install 'litellm[proxy]'
litellm --model huggingface/bigcode/starcoder
# INFO: Proxy running on http://0.0.0.0:4000
クライアント呼び出し
import openai

client = openai.OpenAI(
    api_key="anything",
    base_url="http://0.0.0.0:4000"
)

response = client.chat.completions.create(
    model="gpt-3.5-turbo", 
    messages=[{
        "role": "user",
        "content": "this is a test request, write a short poem"
    }]
)

サポートされているプロバイダー

LiteLLMは、以下の主要なLLMプロバイダーを30以上サポートしています。

主要なクラウドサービスプロバイダー

  • OpenAI - GPTシリーズモデル
  • Azure - Azure OpenAIサービス
  • AWS - BedrockとSageMaker
  • Google - Vertex AI、PaLM、Gemini
  • Anthropic - Claudeシリーズモデル

オープンソースおよび専門プラットフォーム

  • HuggingFace - オープンソースモデルホスティング
  • Replicate - モデルAPIサービス
  • Together AI - オープンソースモデル推論
  • Groq - 高速推論チップ
  • Ollama - ローカルモデル実行

特徴的な機能プラットフォーム

  • Cohere - エンタープライズレベルのNLP
  • AI21 - Jurassicモデル
  • Perplexity - 検索拡張生成
  • DeepInfra - 高性能推論

可観測性とログ記録

LiteLLMは、複数の監視およびログプラットフォームを組み込みでサポートしています。

import litellm
import os


os.environ["LUNARY_PUBLIC_KEY"] = "your-lunary-public-key"
os.environ["HELICONE_API_KEY"] = "your-helicone-auth-key"
os.environ["LANGFUSE_PUBLIC_KEY"] = "your-langfuse-public-key"


litellm.success_callback = [
    "lunary", "mlflow", "langfuse", 
    "athina", "helicone"
]


response = completion(
    model="openai/gpt-4o", 
    messages=[{"role": "user", "content": "Hi 👋"}]
)

サポートされている監視プラットフォーム:

  • Lunary - LLMアプリケーション監視
  • MLflow - 機械学習実験追跡
  • Langfuse - LLMアプリケーション追跡
  • Helicone - API呼び出し監視
  • Athina - AIアプリケーション評価

エンタープライズレベルの機能

鍵管理システム


curl 'http://0.0.0.0:4000/key/generate' \
  --header 'Authorization: Bearer sk-1234' \
  --header 'Content-Type: application/json' \
  --data-raw '{
    "models": ["gpt-3.5-turbo", "gpt-4", "claude-2"], 
    "duration": "20m",
    "metadata": {
      "user": "user@company.com", 
      "team": "core-infra"
    }
  }'

Dockerデプロイメント


git clone https://github.com/BerriAI/litellm
cd litellm


echo 'LITELLM_MASTER_KEY="sk-1234"' > .env
echo 'LITELLM_SALT_KEY="your-salt-key"' > .env


docker-compose up

Web管理インターフェース

  • /uiにアクセスして、視覚的な管理インターフェースを取得
  • 複数のプロジェクトの予算とレート制限を設定
  • APIの使用状況をリアルタイムで監視
  • ユーザーとチームの管理

技術仕様

システム要件

  • Pythonバージョン:Python 3.7+が必要
  • 依存関係
    • openai>=1.0.0(v1.0.0+が必須)
    • pydantic>=2.0.0(v1.40.14+が必須)

コード品質基準

  • コードスタイル:Google Pythonスタイルガイドに従う
  • フォーマットツール:Blackとisortを使用
  • 型チェック:MyPyとPyright
  • コードチェック:Ruffでlintチェック

安定性保証

  • 安定バージョン-stableタグ付きのDockerイメージを使用
  • 負荷テスト:リリース前に12時間の負荷テストを実施
  • 継続的インテグレーション:完全なCI/CDプロセス

商業サポート

エンタープライズ版の機能

  • 高度なセキュリティ機能:シングルサインオン(SSO)統合
  • 専門サポート:専用のDiscordおよびSlackサポート
  • カスタム統合:カスタマイズされたLLMプロバイダー統合
  • SLA保証:サービスレベル契約
  • 機能の優先順位:企業ニーズの優先的な開発

コミュニティサポート

  • GitHub Issues:機能リクエストと問題報告
  • Discordコミュニティ:リアルタイムの交流とサポート
  • ドキュメントの充実:詳細なAPIドキュメントとチュートリアル

使用シナリオ

1. マルチクラウドLLMデプロイメント

  • ベンダーロックインの回避
  • クロスプラットフォームモデルの呼び出しの実現
  • 移行コストの削減

2. コスト最適化

  • 最も安価な利用可能なモデルへのインテリジェントなルーティング
  • 予算管理と使用状況の監視
  • バッチAPI呼び出しの最適化

3. 高可用性アーキテクチャ

  • 自動フェイルオーバー
  • 負荷分散
  • 複数地域へのデプロイメントのサポート

4. 開発効率の向上

  • 統一されたAPIインターフェース
  • モデルの切り替えの簡素化
  • 豊富なSDKサポート

インストールとクイックスタート

基本的なインストール

pip install litellm

プロキシサーバーのインストール

pip install 'litellm[proxy]'

開発環境のセットアップ


git clone https://github.com/BerriAI/litellm
cd litellm


python -m venv .venv
source .venv/bin/activate


pip install -e ".[all]"


uvicorn litellm.proxy.proxy_server:app --host localhost --port 4000 --reload

まとめ

LiteLLMは、Rocket Money、Samsara、Lemonade、Adobeなどの著名な企業で採用されています。統一されたAPIインターフェース、強力なルーティング機能、およびエンタープライズレベルの管理機能を提供することにより、マルチLLM環境の管理の複雑さを大幅に簡素化し、現代のAIアプリケーション開発に最適な選択肢です。