更新日: 2025年9月25日
6 分
# Pythonpip install litellm# Node.jsnpm install litellm# 例: OpenAI + Anthropic + Mistral の使用export OPENAI_API_KEY=sk-...export ANTHROPIC_API_KEY=sk-ant-...export MISTRAL_API_KEY=sk-mis-...from litellm import completionresp = completion(model="gpt-4o-mini", # または "anthropic/claude-3-5-sonnet", "mistral/mistral-large"messages=.---## ストリーミング、ツール、および JSON モード### ストリーミングレスポンス```pythonfrom litellm import completionfor chunk in completion(model="gpt-4o-mini",messages=.### コストとトークンの使用状況LiteLLM は、トークンの使用状況を追跡し、リクエスト、モデル、またはプロジェクトごとのコストを見積もることができます。プロキシを使用すると、使用状況をログ、ダッシュボード、または課金シンクにエクスポートできます。これは、異なる価格設定のベンダーを混在させる場合に非常に貴重です。---## LiteLLM プロキシ (LLM ゲートウェイ)もしあなたがチームまたはプラットフォームの場合、プロキシは真のスーパーパワーです。ルーティング、認証、レート制限、ロギング、および可観測性を備えた中央サービスです。OpenAI API サーフェスを使用して対話するため、アプリのコードはほとんど変更されません。### プロキシの起動```bash# 最もシンプルなローカル実行litellm --port 4000/v1/chat/completions のような OpenAI 互換のエンドポイントを公開します。既存の OpenAI クライアントを ` に向けましょう。config.yaml を作成:model_list:- model_name: gpt-4o-minilitellm_params:model: openai/gpt-4o-miniapi_key: ${OPENAI_API_KEY}- model_name: claude-3-5-sonnetlitellm_params:model: anthropic/claude-3-5-sonnetapi_key: ${ANTHROPIC_API_KEY}router:strategy: simple_weightedroutes:- model: gpt-4o-miniweight: 0.6- model: claude-3-5-sonnetweight: 0.4rate_limits:requests_per_minute: 120logging:level: infosink: stdoutauth:api_keys:- key: svc-app-123litellm --config config.yaml --port 4000from openai import OpenAIclient = OpenAI(base_url=" api_key="svc-app-123")resp = client.chat.completions.create(model="gpt-4o-mini",messages=.---## 高度なルーティング: レイテンシー、コスト、または信頼性次のようなルーティング戦略を実装できます:- モデルを A/B テストするための重み付けラウンドロビン- 地域別のレイテンシー優先- 重要でないエンドポイント向けのコスト認識ルーティング- プロバイダー間でのエラー時のフォールバック/リトライルーターポリシーを使用すると、「安価なものを優先し、難しいプロンプトの場合はプレミアムにフォールバックする」と言うことができます。これにより、高可用性と予測可能な予算が提供されます。---## ガードレール、モデレーション、および安全性クライアントに返す前に、PII を削除したり、安全フィルターを適用したり、出力をモデレートしたりするためのプリプロセッシングおよびポストプロセッシングミドルウェアを追加します。プロバイダーネイティブのモデレーション (例: OpenAI、Google) と、プロキシ独自のポリシーチェックを組み合わせます。例: JSON スキーマの検証を要求し、無効な場合は再確認します。---## 可観測性とロギング- リクエスト/レスポンスのロギングを、リダクション付きで有効にします。- メトリクスを Prometheus/Grafana または APM にエクスポートします。- エンドポイントとユーザーごとに、レイテンシー、トークン、およびコストを追跡します。これにより、「モデルルーレット」が、SLO と予算を備えたマネージドサービスに変わります。---## 実世界のユースケースパターン1) マルチベンダーの回復力- プライマリ: 高速/安価なモデル。フォールバック: 429/5xx での高精度モデル。- 利点: より優れたアップタイム、コスト管理、および安定した品質。2) 機能フラグモデルのアップグレード- ルーターの重みを使用して、新しいモデルをトラフィックの 5% にカナリアテストします。メトリクスを監視します。安定したらランプアップします。3) 製品ティア- 無料ティアは小さなモデルにルーティングされます。プロティアはプレミアムモデルにルーティングされます。4) プロンプトレジストリとテンプレート- プロンプトをプロキシで一元化して、サービスが再デプロイなしで改善を継承できるようにします。5) チームの請求と予算- API キーごとの支出を追跡します。チームまたは製品ごとにソフトリミットとハードリミットを適用します。---## セキュリティとコンプライアンスのチェックリスト- プロバイダーキーをシークレットマネージャーに保存します。構成内の env vars 経由で参照します。- リクエストのリダクションと PII スクラビングをログで有効にします。- プロキシにはサービスごとの API キーを使用します。定期的にローテーションします。- 組織全体のレート制限とクォータを設定します。- モデルとエンドポイントの許可リスト/拒否リストを追加します。---## トラブルシューティング: 迅速な修正- プロキシ経由の「認証されていません」: `auth.api_keys` と、クライアントが `base_url` + 正しいキーを使用していることを確認してください。- モデルが見つかりません: `model_list` に、呼び出しているフレンドリー名が含まれていることを確認してください。- タイムアウト: `timeout` を増やすか、レイテンシーの低いプロバイダー地域にルーティングします。- 不思議な出力: JSON スキーマ + 検証を有効にします。リトライとフォールバックを追加します。- コストスパイク: キャッシュを有効にします。大量のトラフィックを安価なモデルにルーティングします。キーごとのクォータを設定します。より深く掘り下げたり、最新機能を確認するには、公式ドキュメントが頻繁に更新されており、ブックマークする価値があります。DataCamp のガイドのようなチュートリアルは実践的なパターンに最適であり、初心者向けの速習コースビデオは、概念を実際に理解するのに役立ちます。---## すべてをまとめる: リファレンスアプリのスケルトン (Python FastAPI)```python# app.pyfrom fastapi import FastAPIfrom pydantic import BaseModelfrom litellm import completionimport osclass ChatReq(BaseModel):question: strapp = FastAPI@app.post("/ask")async def ask(req: ChatReq):resp = completion(model=os.getenv("DEFAULT_MODEL", "gpt-4o-mini"),messages=.### FAQQ1:LiteLLM とは何ですか?また、直接プロバイダー SDK ではなく、LiteLLM を使用する理由は何ですか?LiteLLM は、100 以上の LLM に対応した OpenAI 互換のゲートウェイであり、1 つの API と 1 つのメンタルモデルを提供します。これにより、ベンダーロックインが軽減され、ルーティングが簡素化され、キャッシュ、リトライ、コスト追跡などの運用機能が追加されます。Q2:OpenAI SDK で LiteLLM を使用するにはどうすればよいですか?SDK のベース URL を LiteLLM プロキシに向け、プロキシ API キーを使用します。コードは同じままで、プロキシがバックグラウンドでプロバイダーまたはモデルを交換できます。Q3:LiteLLM はレスポンスをストリーミングしたり、JSON を返したりできますか?はい。`stream=True` を使用してトークンストリームを取得し、JSON スキーマで `response_format` を使用して、プロバイダー全体で構造化された出力を適用します。Q4:異なる LLM プロバイダー間でのコストを制御するにはどうすればよいですか?使用状況のロギングとコスト見積もりを有効にし、キャッシュを追加し、レート制限を設定し、プロキシ経由で大量のトラフィックを安価なモデルにルーティングします。予算と SLO については、ダッシュボードで監視します。Q5:LiteLLM は本番環境のチームに適していますか?はい。プロキシは、認証、レート制限、ルーティング、可観測性、および安全ミドルウェアを提供します。これは、アプリの OpenAI 互換性を維持しながら、ガバナンスを一元化する LLM ゲートウェイとして設計されています。