Mímisbrunnr知恵の泉

← ローカルLLM 一覧

🎓 レベル:標準 | 重要度:A(必須) 📎 前提:Ollama | 原理:推論の実務(機械学習)

要点(結論先出し)

概念 ── 共通インターフェースの威力

OpenAI互換APIは /v1/chat/completions/v1/embeddings といった決まった形のリクエスト/レスポンスを定めた事実上の標準(要最新確認)。ローカルエンジンがこれを話す限り、クライアントはエンジンの中身を知らなくてよい。Ollamaでも llama-server でも vLLM でも、同じコードで叩けます。

動くコード(Python・OpenAI SDK)

# base_url をローカルへ向けるだけ。api_key はダミーで可(要最新確認)
from openai import OpenAI

client = OpenAI(
    base_url="http://localhost:11434/v1",  # Ollama例。llama-serverなら:8080等
    api_key="local",                        # ローカルでは任意のダミー
)

resp = client.chat.completions.create(
    model="llama3.1:8b",                    # モデル名は要最新確認
    messages=[{"role": "user", "content": "ローカルLLMの利点を3つ"}],
)
print(resp.choices[0].message.content)

curl 版や各エンジンの起動方法は対応lab openai_compat_api.md に。

仕組み ── 接続先を差し替える

flowchart LR
  APP["既存アプリ(OpenAI SDK)"] --> URL["base_url を切替"]
  URL --> LOCAL["ローカル互換API(Ollama・llama-server・vLLM)"]
  LOCAL --> ENG["推論エンジン"]
  ENG --> RESP["同じ形のレスポンス"]

クラウド向けに書いたコードを、設定1つでローカルに付け替えられる。これにより開発はクラウド、本番はローカルのような構成も容易です。

運用の勘所

なぜそうするか

APIを共通語にしておくと、エンジン・モデル・場所(クラウド/ローカル)を独立に差し替えられる。ベンダーロックインを避け、移行コストを最小化できます。ローカルLLMが「既存資産をそのまま活かせる」のは、この互換APIのおかげです。

⚠️ よくある落とし穴

対応lab

関連