OllamaのOpenAI互換APIをWindowsで使う方法|/v1・モデル確認
- 公開日
- 2026-08-09
- 更新日
- 2026-08-09
- 情報確認日
- 2026-08-09
- 編集・運営
- Local AI Compass
OllamaのOpenAI互換APIは、OpenAI向けクライアントのbase URLをlocalhostへ向け替えて使う入口です。Windowsではhttp://localhost:11434/v1/をbase URLにし、公式例のapi_key値、ollama lsで確認したモデル名、/v1/chat/completions・/v1/responses・/v1/embeddingsの違いを分けて確認します。nativeの/api/chat・/api/generate・/api/embedとは別のAPIです。
導入前に確認すること
- Windowsのバージョン、メモリ容量、GPU/VRAM、空き容量を確認する
- 最初は軽量モデル、短い質問、少ない同時作業から始める
- 公式サイトの対応OS、利用規約、モデルのライセンスを確認する
先に結論:OpenAI互換はbase URLを変えるだけでなく、endpointとモデル能力を確認する
Ollama公式docsでは、OpenAI APIの一部との互換性を提供し、既存アプリをOllamaへつなぐ例として http://localhost:11434/v1/ のbase URLが示されています。互換性は「OpenAIと完全に同じ」という意味ではありません。使うendpoint、request field、stream、tool、vision、embedding、Responsesの状態保持を機能ごとに確認します。
| 目的 | 最初に見る場所 | 確認すること |
|---|---|---|
| Chat Completions | POST /v1/chat/completions | model、messages、stream、response_format、tools、visionの対応 |
| Responses | POST /v1/responses | input、instructions、tools、stream。stateful機能の制限 |
| 保存済みモデル | ollama ls / GET /v1/models | 実際に指定できるモデル名とタグ |
| Embedding | POST /v1/embeddings | embedding用モデル、input、次元、vector DB側の整合 |
| Ollama native API | POST /api/chat・/api/generate・/api/embed | OpenAI互換とは別のrequest・response形式 |
OpenAI SDKの初期化が成功しても、モデルが存在すること、Ollamaが起動していること、目的のendpointが対応していることまでは保証しません。最初はlocalhostの短いchatをstream=falseで試し、次にstream、JSON、tools、vision、embeddingを一つずつ追加します。
- ローカルAIをAPIで使う基礎 - APIサーバー、localhost、OpenAI互換の全体像へ戻る
- Ollamaモデル管理 - モデル一覧、詳細、停止、削除、再取得を確認する
- Ollamaのlocal/cloud境界 - 推論場所とOpenAI互換APIの接続先を分ける
Windowsでlocalhost APIとモデルを先に確認する
Windows版OllamaをAPIから使う前に、Ollama本体が起動しているか、モデルが保存済みか、指定したモデル名が一覧にあるかを確認します。API clientのエラーを先に直そうとせず、Ollama単体の状態を分けて記録すると切り分けやすくなります。
- OllamaをWindowsで起動し、PowerShellを新しく開いてollama lsとollama psを実行する。
- 使うモデルが一覧にない場合は、モデル名・タグ・空き容量を確認してollama pull MODELを実行する。
- GET http://localhost:11434/api/tagsでnative APIのモデル一覧を取得し、APIの接続先が自分のPCか確認する。
- 短いモデル名と短いpromptを使い、まずnative APIまたはCLIで単体応答を確認する。
- その後にOpenAI clientのbase_urlをhttp://localhost:11434/v1/へ向け、/v1/chat/completionsを試す。
ollama ls
ollama ps
ollama pull MODEL
GET http://localhost:11434/api/tagslocalhost APIを使う構成でも、モデル取得、更新、cloudモデル、ログ、別アプリ連携の通信条件は別に確認します。Ollamaを使っているというだけで全処理がPC内に限定されるとは限りません。
- Ollama Windows導入後の確認 - server、API、GPU、導入直後の確認へ進む
- Ollamaモデル保存場所 - モデル本体、OLLAMA_MODELS、ログの保存先を分ける
- Ollama公式Windows docs - Windows版とlocalhost APIの公式前提を見る
OpenAI SDKのbase_url・api_key・modelを合わせる
Ollama公式のOpenAI互換例では、OpenAI clientのbase URLをhttp://localhost:11434/v1/にし、api_keyにはollamaという値を指定しています。例ではclient側が値を要求するため指定しますが、local Ollamaのこの例の値を本物の秘密鍵として扱うものではありません。外部hostやcloud、別providerを使うと認証条件が変わるため、同じ値を一般化しないでください。
from openai import OpenAI
client = OpenAI(
base_url="http://localhost:11434/v1/",
api_key="ollama",
)
result = client.chat.completions.create(
model="MODEL",
messages=[{"role": "user", "content": "短い質問"}],
)
print(result.choices[0].message.content)
| 設定 | 例 | よくある取り違え |
|---|---|---|
| base_url | http://localhost:11434/v1/ | endpointまで含めて二重に /v1/chat/completions を付ける |
| api_key | ollama | local例のダミー値を認証の安全保証とみなす |
| model | ollama lsに表示された名前 | OpenAIのモデル名や画面表示だけをそのまま使う |
| API call | client.chat.completions.create | Responsesやnative /api/chatとresponse形式を混ぜる |
OpenAI向けコードを流用する場合も、まずbase_url、model、stream、timeout、response formatを一つずつ固定します。実際のプロジェクトへ組み込む前に、短い固定promptとローカルの非機密データで応答を確認してください。
- Ollama OpenAI compatibility公式docs - Python、JavaScript、curlの公式例と対応範囲を見る
- APIキーとローカルAIの安全性 - 秘密情報、localhost、外部送信、ログを分ける
Chat Completions・Responses・native APIのpathを分ける
OllamaにはOpenAI互換のv1系と、Ollama nativeのapi系があります。同じlocalhost:11434でも、pathを間違えると404、request形式の不一致、response parserのエラーになります。
| API | path | 向いている確認 | 注意点 |
|---|---|---|---|
| OpenAI Chat Completions | /v1/chat/completions | messages、stream、JSON、tools、vision | モデルが機能を実装しているか別に確認 |
| OpenAI Responses | /v1/responses | input、instructions、tools、stream | 現行公式docsでは非stateful。previous_response_id・conversationを前提にしない |
| OpenAI Completions | /v1/completions | string promptを受ける既存client | promptは文字列前提として公式notesを確認 |
| OpenAI Models | /v1/models | OpenAI clientから見えるモデル一覧 | created・owned_byの意味をOllama docsで確認 |
| Ollama Chat | /api/chat | native messages、think、keep_alive、usage | OpenAIのchat.completions形式とは別 |
| Ollama Generate | /api/generate | native prompt、stream、done、usage | messagesではなくprompt中心 |
POST http://localhost:11434/v1/chat/completions
POST http://localhost:11434/v1/responses
GET http://localhost:11434/v1/models
POST http://localhost:11434/v1/embeddings
POST http://localhost:11434/api/chat
POST http://localhost:11434/api/generateOpenAI互換を選ぶかnative APIを選ぶかは、clientが既にOpenAI形式を前提にしているか、Ollama固有のthink・keep_alive・usageなどを使いたいかで決めます。pathだけを置換してレスポンス形式を同じとみなさないでください。
- Ollama Chat API公式docs - native /api/chatのmessages、stream、think、keep_aliveを見る
- Ollama Generate API公式docs - native /api/generateのpromptとusageを見る
- ローカルAI APIの広い比較 - LM Studio・Ollama・Janを横断して比較する
model名とcontext sizeをOpenAI互換側で調整する
OpenAI向けtoolがgpt-3.5-turboのような固定名を送る場合、Ollama公式docsではollama cpで既存モデルを別名へコピーする例が示されています。実際に利用するモデル・タグ・ライセンス・容量を確認してからaliasを作り、元モデルとaliasを同じものと誤認しないでください。
ollama ls
ollama show MODEL
ollama cp llama3.2 gpt-3.5-turbo
ollama lsOpenAI APIにはモデルのcontext sizeを変更する同じ形式の設定がないため、Ollama公式docsではModelfileのPARAMETER num_ctxとollama createを使う方法が案内されています。
FROM MODEL
PARAMETER num_ctx 8192
ollama create mymodel
ollama run mymodel
| 症状 | 確認すること | 次の判断 |
|---|---|---|
| model not found | ollama lsの名前・タグ・alias | 正確なmodelを指定するかpullする |
| 固定モデル名しか受け付けない | clientが送るmodel値 | ollama cpでaliasを作るかclient設定を変更する |
| 長文で止まる・重い | context、RAM/VRAM、モデルサイズ | Modelfileのnum_ctxとPC負荷を分けて確認 |
| 同じ名前でも結果が違う | モデルtag、digest、Modelfile、alias | ollama showと作成元を記録する |
- Ollamaモデル一覧・詳細 - ls、show、ps、容量、タグを確認する
- コンテキスト長とは - 長文とメモリの関係を一般論から確認する
- モデルサイズ早見表 - Windows PCのRAM・VRAMとモデルを分けて考える
Embeddingsはchatモデルと分けて、RAGのindex・queryをそろえる
OpenAI互換のembedding endpointはPOST /v1/embeddings、Ollama nativeのembedding endpointはPOST /api/embedです。どちらも文章をベクトルへ変換する入口ですが、チャットの回答を返すendpointではありません。RAGではembeddingモデル、入力の分割、vector DB、検索、回答モデルを別の部品として扱います。
POST http://localhost:11434/v1/embeddings
{
"model": "EMBEDDING_MODEL",
"input": ["最初の文書", "次の文書"]
}
POST http://localhost:11434/api/embed
{
"model": "EMBEDDING_MODEL",
"input": "検索文"
}
| 確認 | embeddingで見ること | chatと混ぜないこと |
|---|---|---|
| model | embedding用途のモデル名、保存状態、対応形式 | chatモデルをembeddingモデルと決めつける |
| input | 文字列または複数テキスト、truncate、dimensions | messagesやpromptのresponse形式を送る |
| vector | 次元、dtype、保存先、距離計算 | ベクトルをそのまま自然文回答として表示する |
| index/query | 同じembeddingモデルで処理する | index時とquery時でモデルを変更して比較不能にする |
Ollamaの公式Embeddings capabilityでは、semantic search用途のcosine similarityと、indexing・queryingで同じembedding modelを使う考え方が案内されています。RAGが動かない場合は、chat APIのpathではなく、embeddingモデル、入力長、次元、vector DB、検索結果の順に確認します。
- Ollama Embed API公式docs - model、input、truncate、dimensions、embeddingsを確認する
- Ollama Embeddings公式docs - index・query・cosine similarityの考え方を見る
- RAG・埋め込み・ベクトルDB - embeddingから検索・回答までの全体を整理する
- embeddingモデルの選び方 - chat用モデルとembedding用モデルを分ける
stream・JSON・tools・visionは最後に一つずつ確認する
Chat Completionsの公式互換表には、streaming、JSON mode、vision、tools、reasoning/thinking controlなどの対応項目があります。ただし、API側がfieldを受け付けても、指定したモデルがvisionやtool callingを実行できるとは限りません。最小リクエストから一項目ずつ追加します。
- stream=falseの短いtext chatで、HTTP statusとresponse parserを確認する。
- stream=trueへ変え、SSEやSDKのstream iteratorをクライアントが正しく読めるか確認する。
- response_formatやJSON Schemaを追加し、出力後にJSON.parseなどの検証を行う。
- toolsを1つだけ定義し、モデルのtool calling対応、引数の検証、実行承認を確認する。
- visionを試す場合は、対応モデル、image contentの形式、入力サイズ、送信範囲を確認する。
- Responsesへ移行する場合は、非statefulの制限を踏まえ、previous_response_idやconversationを前提にしない。
POST /v1/chat/completions
{
"model": "MODEL",
"messages": [{"role": "user", "content": "短い質問"}],
"stream": false
}対応表にある機能と、手元のモデルで安全に動くことは別です。JSONはstructured outputの記事、tool callingはMCPの記事、visionはモデル形式や入力条件の記事へ分岐します。
- ローカルAIでJSON出力 - JSON mode・schema・出力検証の考え方を見る
- MCP・tool calling - ツール定義、権限、実行結果を確認する
- Ollama公式OpenAI compatibility - Chat Completionsの機能表とResponsesの制限を見る
Windowsで接続エラーが出たときの順番と公開範囲
OpenAI互換APIのエラーは、Ollamaが停止している、base URLが違う、model名が違う、endpointを混ぜた、stream responseを読めない、embeddingの次元が違う、といった層で起きます。再インストールやLAN公開を先にせず、localhostの状態を一つずつ記録します。
| 症状 | 原因候補 | 最初の確認 |
|---|---|---|
| connection refused | Ollama本体・server停止、port違い | WindowsのOllama、localhost:11434、ollama ls |
| 404 Not Found | v1とapiのpath混在、base_urlの二重指定 | /v1/chat/completionsか/api/chatかをclientと一致させる |
| model not found | tag違い、pull前、alias違い | ollama ls、ollama show MODEL、model値 |
| 401/認証エラー | 外部hostやclient側の認証条件 | local例のapi_keyと実際の接続先を分ける |
| JSON parse・stream error | stream設定とparserの不一致 | stream=falseで確認してからSSE処理を追加 |
| RAGの検索が不安定 | embeddingモデル・次元・index/queryの不一致 | 同じembedding modelとvector DB設定 |
- 最初はlocalhostだけで検証し、LANや外部hostへ公開する設定をAPI疎通のために追加しない。
- api_key、個人パス、機密prompt、文書本文をログや質問文へそのまま残さない。
- localモデルとcloudモデル、OllamaのAPIと連携アプリの外部送信を分けて確認する。
- 実運用ではHTTP status、endpoint、model、stream、response末尾、エラー本文を秘密情報を除いて記録する。
- OllamaのCLI、API、model tag、対応フィールドは更新されるため、記事の固定値より公式docsと自分の応答を優先する。
- Ollamaの症状別トラブル - native APIのdone・usage・streaming診断へ進む
- Ollamaが起動しないとき - Windows本体・server・portの確認へ進む
- 履歴・ログ・プライバシー - API・履歴・ログ・文書データを分けて考える
よくある質問
OllamaのOpenAI互換APIのbase URLは何ですか?
Ollama公式のlocal例では、OpenAI clientのbase URLに http://localhost:11434/v1/ を指定します。clientがendpointを付けるため、base URLへさらに /v1/chat/completions を重ねないようにします。
OllamaのOpenAI互換APIに本物のAPI keyは必要ですか?
公式のlocal例ではclient側が値を要求するため api_key に ollama を指定していますが、その例の値は本物の秘密鍵として扱うものではありません。外部host、cloud、別providerを使う場合の認証条件は別に確認してください。
Ollamaのモデル名はOpenAIのモデル名をそのまま使えますか?
必ずしも使えません。まず ollama ls で実際のモデル名とタグを確認します。OpenAI向けtoolが固定名を要求する場合、Ollama公式docsには ollama cp で別名を作る例があります。
OllamaのOpenAI互換APIでResponses APIは使えますか?
現行のOllama公式OpenAI compatibility docsには /v1/responses の対応が記載されています。ただし非statefulの扱いで、previous_response_id や conversation を前提にする機能は対応しないと説明されています。
OllamaのOpenAI互換APIでembeddingはできますか?
公式docsには /v1/embeddings があり、native APIには /api/embed があります。chat用モデルとembedding用モデル、index/queryで使うモデル、vector DBの次元を分けて確認してください。
Ollamaのnative APIとOpenAI互換APIは何が違いますか?
OpenAI互換APIは /v1/chat/completions、/v1/responses、/v1/embeddings などでOpenAI形式のclientをつなぐ入口です。native APIの /api/chat、/api/generate、/api/embed はOllama固有のrequest・response形式なので、pathとparserを混ぜません。
OpenAI互換APIにすればOllamaの回答は速くなりますか?
API形式を変えても、同じモデルをOllamaで動かすPC負荷がなくなるわけではありません。モデルサイズ、context、RAM、VRAM、CPU/GPU、streamの読み方を分けて確認します。
次に読むおすすめルート
開発・API連携したい人
LM StudioとOllamaの違いを確認し、API、長文処理、RAGまで段階的に進みます。
- ローカルAIをAPIで使う方法
- WindowsでローカルAIコーディングを始める
- VS CodeでローカルAIを使う
- LM Studioのlms CLIを使う
- LM StudioのTool Useを使う
- LM StudioのStructured Outputを使う
- LM StudioのResponses APIを使う
- LM StudioのMCPをAPIで使う
- ローカルAIでJSON出力する方法
- LM StudioとOllamaの違い
- コンテキスト長とは
- RAG・埋め込み・ベクトルDBの仕組み
- OllamaのEmbedding APIを使う
- OllamaのResponses APIを使う
- OllamaのAPI認証を確認する
- OllamaをWindowsのLANから使う前の確認
- OllamaのモデルID・能力を確認する
- OllamaのModelfileを使う
- Ollama native API streamingを使う
- Ollama Web Search APIを使う
- OllamaのThinkingを使う
- LM StudioのEmbedding APIを使う
- RAG評価と引用確認の基礎
- faithfulness確認
- ローカルRAGのプライバシー
- MCPとは
- ローカルLLMの安全性とプライバシー
- Gemma 4 12Bの更新メモ
- Hermes Desktopとは
- Hermes DesktopとLM Studio接続
- Hermes DesktopとOllama接続
- Hermes Desktop接続トラブル
- Hermes DesktopでOpenRouterを使う
- Hermes DesktopでDeepSeek APIを使う
- Hermes DesktopでProviderを使い分ける
- Hermes DesktopとLM Studio接続の確認ポイント
- Hermes AgentとDesktopの違い
- Ollamaとは
- Windows ARMでローカルAIを使う前の確認
- WindowsでOllamaをインストールする
- Ollamaのローカルモデルとcloudモデルの違い
- Ollamaのモデル保存場所と移動
- Ollamaのモデル一覧・削除・容量整理
- Ollamaのtool callingを使う
- OllamaのStructured Outputsを使う
- OllamaのEmbedding APIを使う
- OllamaのResponses APIを使う
- OllamaのAPI認証を確認する
- OllamaのモデルID・能力を確認する
- OllamaのModelfileを使う
- Ollama native API streamingを使う
- LM StudioのEmbedding APIを使う
- Ollamaの解説
- 診断基準
- 比較表
あなたはどのタイプ?
- 初めてローカルAIを触る人 - まず全体像をつかみ、LM StudioとOllamaの違い、モデルサイズの考え方を順番に確認します。
- LM Studio・Ollamaの症状別トラブルを解決したい人 - 起動、モデルロード、Prompt Processing、generation、API接続、GPU確認をツール別に分けて読みます。
- GPUなし・低スペックPCの人 - 軽量モデル、メモリ別の目安、重いときの確認ポイントを先に見ます。
- PDFや資料を読ませたい人 - 先に基本を押さえ、モデル単体の確認後にAnythingLLMへ進みます。
- ローカルAIエージェントを試したい人 - Bionic、Ollama、AnythingLLM、Hermesを役割別に分け、local/cloud、tool、保存、PC負荷を順番に確認します。
- 開発・API連携したい人 - LM StudioとOllamaの違いを確認し、API、長文処理、RAGまで段階的に進みます。
関連チェック先
- Ollama OpenAI compatibility - OpenAI互換のbase URL、Chat Completions、Responses、models、embeddings、対応フィールドを確認できます。
- Ollama Windows - WindowsでのOllama本体、localhost API、モデルや環境の前提を確認できます。
- Ollama CLI Reference - pull、ls、show、cp、createなど、モデルの取得・確認・名前変更・作成の入口を確認できます。
- Ollama Chat API - Ollama native chat APIのmessages、stream、think、keep_aliveなどを確認できます。
- Ollama Generate API - Ollama native generate APIのprompt、stream、usageや応答形式を確認できます。
- Ollama Embed API - native /api/embedのmodel、input、truncate、dimensions、embeddingsレスポンスを確認できます。
- Ollama Embeddings capability - embeddingモデル、semantic search、indexとqueryで同じモデルを使う考え方を確認できます。
- Ollama List models API - 保存済みモデルのname、size、digestなどを一覧する仕様を確認できます。