ドキュメント

ドキュメント

OllamaのOpenAI互換API

Ollamaはローカルモデル向けのOpenAI互換APIを提供します。OpenAI SDKでの呼び出し方と、base_urlとmodelだけを変更して同じコードからホスト型のClaudeやGPTに接続する方法を紹介します。

Ollamaはオープンモデルを自分のマシン上で実行し、OpenAI互換APIとしてhttp://localhost:11434/v1で公開します。通信形式がOpenAIと一致するため、公式OpenAI SDKは変更せずにOllamaで動作します。また、ベースURLだけを変更すれば、同じコードからホスト型の最先端モデルを利用できます。

要約 — OllamaのOpenAI APIはhttp://localhost:11434/v1で利用できます。OpenAIクライアントのbase_urlをそこに設定し、任意のプレースホルダーapi_keyを指定します。代わりにホスト型のClaude/GPTを使うには、base_urlをhttps://api.kunavo.com/v1に変更し、モデルのslugを指定します。それ以外は変更不要です。

OllamaのOpenAI互換APIとは

Ollamaは、Llama、Qwen、Mistralなどのモデルをローカルで実行するための独立したオープンソースプロジェクトです。ネイティブAPIに加えてOpenAI互換のインターフェースを備えているため、OpenAI向けに構築されたツールを変更せずに利用できます。多くのアプリが使う以下のエンドポイントを実装しています。

エンドポイント目的
POST /v1/chat/completionsチャット — 多くのアプリが使うエンドポイント
POST /v1/completionsレガシーなテキスト補完
POST /v1/embeddingsローカルモデル向けの埋め込み
GET /v1/modelsローカルにpull済みのモデルを一覧表示

チャット、補完、埋め込みに対応します(マルチモーダルなローカルモデルでは画像入力にも対応)。画像、動画、音声は生成しません。Kunavoも同じ/v1/chat/completions契約を実装しています。このリファレンスにはすべてのパラメーター、ストリーミングのdelta形式、usageオブジェクトが記載されており、Ollamaのv1インターフェースとの行ごとの互換性表も掲載しています。

OpenAI SDKでOllamaを呼び出す

base_urlをhttp://localhost:11434/v1に指定します。SDKではapi_keyが必須ですが、ローカルのOllamaはその値を無視するため、任意の文字列を渡してください。modelにはpull済みのモデル(例:ollama pull llama3.2)を設定します。

from openai import OpenAI

client = OpenAI(
    base_url="http://localhost:11434/v1",  # Ollama's OpenAI-compatible API
    api_key="ollama",  # required by the SDK, ignored by local Ollama
)

resp = client.chat.completions.create(
    model="llama3.2",
    messages=[{"role": "user", "content": "Explain quicksort in one paragraph."}],
)
print(resp.choices[0].message.content)

curlを使う場合:

curl http://localhost:11434/v1/chat/completions \
  -H "Content-Type: application/json" \
  -d '{
    "model": "llama3.2",
    "messages": [{"role": "user", "content": "Hello, Ollama"}]
  }'

同じコードでホスト型の最先端モデルを利用

Ollamaはオフライン開発やプライバシーが重要な用途に最適ですが、難しい推論、コーディング、長いコンテキストではローカルモデルは最先端モデルに及びません。KunavoもOpenAI互換なので、base_urlとモデルのslugを変更するだけで、呼び出しをホストモデルに切り替えられます。

from openai import OpenAI

client = OpenAI(
    base_url="https://api.kunavo.com/v1",  # only this line changes
    api_key="sk-kn-...",               # a real key now
)

resp = client.chat.completions.create(
    model="claude-sonnet-5",  # a hosted frontier model
    messages=[{"role": "user", "content": "Explain quicksort in one paragraph."}],
)
print(resp.choices[0].message.content)
Ollama(ローカル)Kunavo(ホスト型)
ベースURLlocalhost:11434/v1api.kunavo.com/v1
実行場所お使いのマシンマネージドAPI
モデルローカルのオープンモデルClaude、GPT、Veo、Suno
モダリティテキスト + 埋め込みテキスト、画像、動画、音声
コストお使いのハードウェア / 電気代トークン単位、公開価格より低価格
最適な用途オフライン開発、プライバシー本番環境で最先端の品質
Kunavoの1つのキーですべてのホストモデルを利用でき、Stripe経由でまとめて請求されます。最初の呼び出しについてはクイックスタートをご覧ください。

環境変数で切り替える

よくある構成は、ローカル開発ではOllama、本番環境ではホストモデルを使い、環境変数で選択する方法です。クライアントとリクエストのコードは同じで、異なるのはbase_urlとモデルだけです。

import os
from openai import OpenAI

# One client, switched by environment. Local for dev, hosted for prod.
if os.getenv("APP_ENV") == "production":
    client = OpenAI(base_url="https://api.kunavo.com/v1",
                    api_key=os.environ["KUNAVO_API_KEY"])
    MODEL = "claude-haiku-4-5"
else:
    client = OpenAI(base_url="http://localhost:11434/v1", api_key="ollama")
    MODEL = "llama3.2"

resp = client.chat.completions.create(
    model=MODEL,
    messages=[{"role": "user", "content": "ping"}],
)
print(resp.choices[0].message.content)

よくある質問

OllamaにはOpenAI互換APIがありますか?

はい。Ollamaは http://localhost:11434/v1 でOpenAI互換のREST APIを公開しており、/chat/completions、/completions、/embeddings、/modelsを利用できます。公式OpenAI SDKのbase_urlにこのURLを指定し、api_keyには任意の文字列を渡してください(ローカルではOllamaが無視します)。modelには、プル済みのllama3.2のようなモデルを設定します。リクエストとレスポンスの形式はOpenAIと一致します。

OllamaのOpenAI APIではどのベースURLを使いますか?

http://localhost:11434/v1 by default. Set the OpenAI client base_url to that value. If Ollama runs on another host or port, substitute it — the /v1 suffix stays.

Ollamaからホスト型モデルに切り替えるにはどうすればよいですか?

どちらもOpenAI互換のため、変更するのはbase_urlとmodelだけです。http://localhost:11434/v1 を https://api.kunavo.com/v1 に置き換え、有効なsk-kn-キーを使い、modelにはclaude-sonnet-5やclaude-haiku-4-5などのホスト型スラッグを指定します。それ以外のコード変更は不要です。

OllamaのOpenAI APIは画像や動画に対応していますか?

OllamaのOpenAI互換APIは、チャット、補完、埋め込みに加え、マルチモーダルなローカルモデルの画像入力に対応しています。画像、動画、音声の生成には対応していません。同じOpenAI形式のAPIでホスト型の画像、動画、音声を生成するには、Kunavoの /v1/images、/v1/video、/v1/audioエンドポイントを使ってください。

次に確認する項目