100種類以上の大規模言語モデル(LLM)を、まるで全てがOpenAIのAPIであるかのようにチャットしてみたいですか?チャットボットの構築、タスクの自動化、あるいは単に技術的な探求をしている場合でも、LiteLLMは、OpenAI、Anthropic、OllamaなどのLLMを、すべて同じOpenAIスタイルのフォーマットで呼び出すための切符です。私はAPI呼び出しを簡素化するためにLiteLLMに飛び込みましたが、これはコードをクリーンで柔軟に保つための救世主だと断言できます。この初心者向けガイドでは、公式ドキュメントに基づいて、LiteLLMのセットアップ方法、ローカルのOllamaモデルとOpenAIのGPT-4oの呼び出し方法、さらにはレスポンスのストリーミング方法までを紹介します。AIプロジェクトを晴れた日の午後よりもスムーズにする準備はできていますか?始めましょう!
LiteLLMとは?あなたのLLM APIスーパーパワー
LiteLLMは、オープンソースのPythonライブラリおよびプロキシサーバーで、OpenAI、Anthropic、Azure、Hugging Face、そしてOllama経由のローカルモデルなど、100以上のLLM APIをOpenAI Chat Completionsフォーマットを使用して呼び出すことができます。入力と出力を標準化し、APIキーを処理し、ストリーミング、フォールバック、コスト追跡などの便利な機能を追加するため、プロバイダーごとにコードを書き直す必要がありません。GitHubで22.7K以上のスターを獲得し、AdobeやLemonadeなどの企業に採用されているLiteLLMは、開発者のお気に入りです。APIのドキュメント作成(MkDocsなどを使用)でも、AIアプリの構築でも、LiteLLMはワークフローを簡素化します。セットアップして、実際に動かしてみましょう!
LiteLLMのための環境設定
LiteLLMでLLMを呼び出す前に、システムを準備しましょう。これは初心者向けで、各ステップが説明されているので、迷うことはありません。
1. 前提条件の確認:以下のツールが必要です。
- Python:バージョン3.8以上。ターミナルで
python --version
を実行してください。見つからないか古すぎる場合は、python.orgから入手してください。PythonはLiteLLMのスクリプトを実行します。 - pip:Pythonのパッケージマネージャーで、Python 3.4以降に含まれています。
pip --version
で確認してください。存在しない場合は、get-pip.py
をダウンロードし、python get-pip.py
を実行してください。 - Ollama:ローカルモデル用。ollama.comからダウンロードし、
ollama --version
で確認してください(例:0.1.44)。ローカルLLMのテストに使用します。
何か足りませんか?スムーズに進めるために、今すぐインストールしてください。
2. プロジェクトフォルダの作成:整理整頓しましょう。
mkdir litellm-api-test
cd litellm-api-test
このフォルダにLiteLLMプロジェクトを配置し、cd
で準備を整えます。
3. 仮想環境のセットアップ:Python仮想環境でパッケージの競合を避けましょう。
python -m venv venv
アクティベートします。
- Mac/Linux:
source venv/bin/activate
- Windows:
venv\Scripts\activate
ターミナルに(venv)
と表示されていれば、クリーンな環境に入っており、LiteLLMの依存関係が隔離されています。
4. OpenAI APIキーの取得:GPT-4oのテストのために、openai.comでサインアップし、APIキーのセクションに移動してキーを作成します。安全に保存してください。後で必要になります。

LiteLLMとOllamaのインストール
次に、LiteLLMをインストールし、ローカルモデルのためにOllamaをセットアップしましょう。これは迅速に行え、API呼び出しの準備が整います。
1. LiteLLMのインストール:アクティベートされた仮想環境で、以下を実行します。
pip install litellm openai
これにより、LiteLLMとOpenAI SDK(互換性のために必要)がインストールされます。pydantic
やhttpx
などの依存関係も取得されます。
2. LiteLLMの確認:インストールを確認します。
python -c "import litellm; print(litellm.__version__)"
1.40.14
またはそれ以降のバージョンが表示されるはずです。失敗する場合は、pip
をアップデートしてください(pip install --upgrade pip
)。
3. Ollamaのセットアップ:Ollamaが実行されていることを確認し、Llama 3(8B)のような軽量モデルをプルします。
ollama pull llama3
これは約4.7GBをダウンロードするため、接続が遅い場合は軽食を取りましょう。ollama list
でllama3:latest
が表示されることを確認します。OllamaはLiteLLMが呼び出すローカルモデルをホストします。

LiteLLMでのLLM呼び出し:OpenAIとOllamaの例
楽しい部分、LLMの呼び出しに進みましょう!Pythonスクリプトを作成し、OpenAIのGPT-4oと、Ollama経由のローカルLlama 3モデルを、どちらもLiteLLMのOpenAI互換フォーマットを使用して呼び出します。リアルタイムのレスポンスのためにストリーミングも試します。
1. テストスクリプトの作成:litellm-api-test
フォルダに、以下のコードでtest_llm.py
を作成します。
from litellm import completion
import os
# 環境変数の設定
os.environ["OPENAI_API_KEY"] = "your-openai-api-key" # あなたのキーに置き換えてください
os.environ["OLLAMA_API_BASE"] = "http://localhost:11434" # デフォルトのOllamaエンドポイント
# LLMへのメッセージ
messages = [{"content": "Write a short poem about the moon", "role": "user"}]
# OpenAI GPT-4oの呼び出し
print("Calling GPT-4o...")
gpt_response = completion(
model="openai/gpt-4o",
messages=messages,
max_tokens=50
)
print("GPT-4o Response:", gpt_response.choices[0].message.content)
# Ollama Llama 3の呼び出し
print("\nCalling Ollama Llama 3...")
ollama_response = completion(
model="ollama/llama3",
messages=messages,
max_tokens=50,
api_base="http://localhost:11434"
)
print("Llama 3 Response:", ollama_response.choices[0].message.content)
# Ollama Llama 3レスポンスのストリーミング
print("\nStreaming Ollama Llama 3...")
stream_response = completion(
model="ollama/llama3",
messages=messages,
stream=True,
api_base="http://localhost:11434"
)
print("Streamed Llama 3 Response:")
for chunk in stream_response:
if chunk.choices[0].delta.content:
print(chunk.choices[0].delta.content, end="", flush=True)
print() # ストリーミング後の改行
このスクリプトは:
- APIキーとOllamaのエンドポイントを設定します。
- プロンプト(「月についての短い詩を書いてください」)を定義します。
- LiteLLMの
completion
関数でGPT-4oとLlama 3を呼び出します。 - Llama 3のレスポンスをストリーミングしてリアルタイム出力します。
2. APIキーの置き換え:os.environ["OPENAI_API_KEY"]
を実際のOpenAIキーに更新してください。キーを持っていない場合は、GPT-4oの呼び出しをスキップし、Ollamaに焦点を当ててください。
3. Ollamaが実行されていることの確認:別のターミナルでOllamaを起動します。
ollama serve
これにより、Ollamaがhttp://localhost:11434
で実行されます。Llama 3の呼び出しのために開いたままにしてください。
4. スクリプトの実行:仮想環境で、以下を実行します。
python test_llm.py
- 私がこれを実行したとき、GPT-4oは洗練された詩を返しました。例:
>> The moon’s soft glow, a silver dream, lights paths where quiet shadows gleam.
- Llama 3はよりシンプルですが魅力的なバージョンを返しました。例:
>> Moon so bright in the night sky, glowing soft as clouds float by.
ストリーミングされたレスポンスは単語ごとに表示され、まるでLLMがライブでタイピングしているかのようでした。失敗する場合は、Ollamaが実行されているか、OpenAIキーが有効か、ポート11434が開いているかを確認してください。デバッグログは~/.litellm/logs
にあります。
LiteLLMコールバックによる可観測性の追加
プロのようにLLM呼び出しを追跡したいですか?LiteLLMは、LangfuseやMLflowなどのツールに入力、出力、コストをログするためのコールバックをサポートしています。コストをログするための簡単なコールバックを追加しましょう。
スクリプトの更新:test_llm.py
を修正して、コスト追跡コールバックを含めます。
from litellm import completion
import os
# コストを追跡するコールバック関数
def track_cost_callback(kwargs, completion_response, start_time, end_time):
cost = kwargs.get("response_cost", 0)
print(f"Response cost: ${cost:.4f}")
# コールバックの設定
import litellm
litellm.success_callback = [track_cost_callback]
# スクリプトの残りの部分(上記と同じ)
os.environ["OPENAI_API_KEY"] = "your-openai-api-key"
os.environ["OLLAMA_API_BASE"] = "http://localhost:11434"
messages = [{"role": "user", "content": "Write a short poem about the moon"}]
print("Calling GPT-4o...")
gpt_response = completion(model="openai/gpt-4o", messages=messages, max_tokens=50)
print("GPT-4o Response:", gpt_response.choices[0].message.content)
# ... (Ollamaとストリーミングの呼び出しは変更なし)
これにより、各呼び出しのコストがログされます(例:GPT-4oの場合は「Response cost: $0.0025」)。Ollamaの呼び出しは無料なので、コストは$0です。
再度実行:python test_llm.py
を実行します。レスポンスと共にコストログが表示され、クラウドベースのLLMの費用を監視するのに役立ちます。
APIdogによるAPIのドキュメント作成
LLM APIを扱っているため、チームやユーザーのために明確にドキュメントを作成したいと思うでしょう。APIdogを強くお勧めします。APIdogのドキュメント作成機能は、これに最適なツールです!APIプレイグラウンドやセルフホスティングオプションなどの機能を備えた、洗練されたインタラクティブなプラットフォームで、APIの設計、テスト、ドキュメント作成が可能です。LiteLLMのAPI呼び出しとAPIdogの洗練されたドキュメントを組み合わせることで、プロジェクトを次のレベルに引き上げることができます。ぜひ試してみてください!

LiteLLMに関する私の見解
LiteLLMを使ってみて、私が気に入った点は以下の通りです。
- 統一フォーマット:OpenAI、Ollama、その他に対応する1つのコード構造。API固有の悩みがなくなります。
- ローカルパワー:Ollama統合により、モデルをオフラインで実行でき、プライバシーや低予算プロジェクトに最適です。
- ストリーミングの楽しさ:リアルタイムのレスポンスにより、まるで友達とチャットしているかのようにアプリが活き活きと感じられます。
- コミュニティの活気:GitHubで18K以上のスターを獲得しており、LiteLLMは開発者のお気に入りです。
課題は?OllamaやAPIキーの設定が正しくないと、セットアップが難しい場合がありますが、ドキュメントはしっかりしています。
LiteLLMを成功させるためのプロのヒント
- デバッグ:
litellm.set_verbose = True
で詳細なログを有効にすると、生の要求と応答を確認できます。 - その他のモデル:AnthropicのClaudeやAzure OpenAIを試すには、それらのAPIキーとモデルを追加します(例:
anthropic/claude-3-sonnet-20240229
)。 - 非同期呼び出し:FastAPIアプリで非ブロッキング呼び出しには
litellm.acompletion
を使用します。 - プロキシサーバー:複数のアプリが1つのエンドポイントを共有するために、LiteLLMをプロキシとして実行します(
litellm --model gpt-3.5-turbo
)。 - コミュニティ:LiteLLM DiscordまたはGitHub Discussionsに参加して、ヒントや最新情報を得ましょう。
まとめ:あなたのLiteLLMジャーニーはここから始まります
あなたは今、LiteLLMの力を解き放ち、OpenAIのGPT-4oからローカルのLlama 3まで、すべてのLLMを1つのクリーンなフォーマットでプロのように呼び出せるようになりました!AIアプリを構築している場合でも、好奇心旺盛なコーダーとして実験している場合でも、LiteLLMはモデルの切り替え、レスポンスのストリーミング、コストの追跡を容易にします。新しいプロンプトを試したり、プロバイダーを追加したり、大規模なプロジェクトのためにプロキシサーバーをセットアップしたりしてみてください。LiteLLM GitHubであなたの成功を共有してください。あなたが何を作成するかを見るのが楽しみです!そして、APIのドキュメント作成にはAPIdogをチェックすることを忘れないでください。ハッピーコーディング!