OllamaのEmbedding APIをWindowsで使う方法|/api/embed・Python・RAG

公開日
2026-08-09
更新日
2026-08-09
情報確認日
2026-08-09
編集・運営
Local AI Compass

OllamaのEmbedding APIは、文章を数値ベクトルへ変換し、意味検索やRAGのindex・queryに使うための入口です。Windowsではまずembedding用モデルを用意し、native POST /api/embedをPowerShellから呼び、入力件数・ベクトル長・truncate・dimensionsを確認します。チャット回答を返す /api/chatや、OpenAI互換の /v1/embeddingsとはpathとレスポンス形式を分けて扱います。

導入前に確認すること

  • Windowsのバージョン、メモリ容量、GPU/VRAM、空き容量を確認する
  • 最初は軽量モデル、短い質問、少ない同時作業から始める
  • 公式サイトの対応OS、利用規約、モデルのライセンスを確認する

先に結論:Windowsではnative /api/embedから最小確認する

Ollama公式のEmbeddings capabilityでは、embeddingをsemantic search、retrieval、RAGへ使う流れと、native POST /api/embedの例が案内されています。最初は短い入力を1件だけ送り、HTTP応答、model、embeddingsの件数、1ベクトルの長さを確認してからbatchとRAGへ進みます。

Ollama Embedding APIのpath選択
目的最初に見るpath確認すること
Ollama nativeでベクトルを作るPOST /api/embedmodel、input、truncate、dimensions、embeddings
OpenAI形式のclientを使うPOST /v1/embeddingsbase URL、model、input、互換response parser
文章を生成するPOST /api/chatmessages、stream、think。embeddingとは別のモデル役割
RAGのindexを作る文書を分割して/api/embedchunk、embedding model、vector DB、次元
RAGのqueryを探す質問を同じmodelで/api/embedindexとqueryのモデル・前処理・距離計算を一致させる

Embeddingは回答文を生成するAPIではありません。embeddingモデルが文章を数値化し、vector DBや検索処理が近い文章を探し、最後にchatモデルが必要なら回答を生成します。

Windowsでembedding用モデルを準備する

Ollamaのchat用モデルを入れていても、embedding用途へそのまま使えるとは限りません。公式Embeddings capabilityにはembeddinggemma、qwen3-embedding、all-minilmが推奨モデルとして掲載されていますが、タグ、容量、対応言語、PC負荷は利用時点のモデル情報で確認します。

  1. WindowsでOllamaが起動し、localhost:11434へ接続できることを確認する。
  2. 公式モデル情報と用途を確認し、embedding用モデルをollama pullで取得する。
  3. ollama lsで保存済みの正確なmodel名・tagを確認する。
  4. ollama show MODELでモデル情報を確認し、短い入力で/api/embedを試す。
  5. index作成とqueryで同じembedding modelを使う前提を記録する。
ollama pull embeddinggemma
ollama ls
ollama show embeddinggemma
ollama ps

embeddinggemmaは公式docsの例に使われるモデル名です。実際に取得できるか、モデルのlicense、容量、日本語文書との相性、RAM/VRAM負荷を固定モデルの成功として一般化しないでください。

PowerShellから1件のembeddingを作る

WindowsのPowerShellではInvoke-RestMethodでJSONをPOSTできます。native /api/embedの最小requestはmodelとinputです。結果にはmodel、embeddings、処理時間、prompt_eval_countなどが返るため、まず自然文の意味を評価する前に配列の形を確認します。

$payload = @{
  model = "embeddinggemma"
  input = "WindowsのローカルAIで文章検索を試す"
  truncate = $true
} | ConvertTo-Json -Depth 8

$result = Invoke-RestMethod `
  -Uri "http://localhost:11434/api/embed" `
  -Method Post `
  -ContentType "application/json" `
  -Body $payload

$result.model
$result.embeddings.Count
$result.embeddings[0].Count
$result | ConvertTo-Json -Depth 6
Ollama native Embed APIのレスポンス確認
確認値意味最初の見方
result.modelベクトルを生成したモデルrequestのmodelと一致するか
embeddings.Count入力に対するベクトル数1件なら1、batchなら入力件数と対応するか
embeddings[0].Count1ベクトルの要素数index/queryで同じ次元になるか
total_duration / load_duration処理・ロード時間の目安PCやモデル比較の記録。一般速度の断定はしない

PowerShellの配列やConvertTo-JsonのDepthを変えるとrequest形が変わる場合があります。HTTPエラー時はmodel、localhost、port、bodyを一つずつ確認し、本文へ秘密情報や実文書を入れないでください。

batch input・truncate・dimensionsを分けて確認する

OllamaのEmbed APIはinputへ文字列の配列を渡してbatch生成できます。公式API referenceにはtruncate、dimensions、keep_alive、optionsがrequest fieldとして掲載されています。どれも一度に追加せず、batch件数、長い入力、次元指定の順に個別確認します。

$payload = @{
  model = "embeddinggemma"
  input = @(
    "最初の文書チャンク",
    "次の文書チャンク",
    "検索に使う短い質問"
  )
  truncate = $false
  keep_alive = "5m"
} | ConvertTo-Json -Depth 8

$batch = Invoke-RestMethod `
  -Uri "http://localhost:11434/api/embed" `
  -Method Post `
  -ContentType "application/json" `
  -Body $payload

$batch.embeddings | ForEach-Object { $_.Count }
Ollama Embed APIのbatchとrequest fields
field役割注意点
input1件または複数テキストを指定入力順とembeddingsの順を対応づける
truncatecontext windowを超える入力を切り詰めるかfalseなら長さ超過時にerror。文書分割で先に管理する
dimensions生成する次元数を指定するfieldmodel・実装の対応を確認し、indexとqueryの次元を固定する
keep_aliveモデルを保持する時間の指定メモリ占有と再ロード時間の観点で確認する

dimensionsを変えると既存vector DBのschemaと互換しなくなる可能性があります。実運用では、embedding model名、tag、次元、前処理、chunkサイズ、truncate方針をindexのメタデータへ残します。

Python・JavaScriptからembedを呼ぶ

Ollama公式Embeddings capabilityにはPythonのollama.embedとJavaScriptのollama.embed例があります。ここではSDKをこのサイトへ追加するのではなく、公式の呼び出し形をWindowsアプリへ組み込むときの確認点として示します。インストール方法やSDK versionは利用時点の公式案内を優先します。

import ollama

result = ollama.embed(
    model="embeddinggemma",
    input=[
        "最初の文書チャンク",
        "次の文書チャンク",
    ],
)

print(len(result["embeddings"]))
print(len(result["embeddings"][0]))
import ollama from "ollama";

const result = await ollama.embed({
  model: "embeddinggemma",
  input: ["最初の文書チャンク", "次の文書チャンク"],
});

console.log(result.embeddings.length);
console.log(result.embeddings[0].length);
  • SDKがlocalhost:11434へ接続する前提、model名、入力配列、結果のembeddings件数を固定する。
  • Python/JavaScriptの配列をDBへ保存する前に、ベクトル長とindex schemaを確認する。
  • 例が動かないときはSDKの問題とnative HTTP APIの問題を分け、PowerShellの最小requestへ戻る。
  • SDKの導入は利用者側の環境判断であり、このサイトの依存関係を追加・更新したものではない。

OpenAI互換 /v1/embeddingsとRAGのindex/queryをそろえる

Ollamaにはnative POST /api/embedのほか、OpenAI互換POST /v1/embeddingsがあります。既存のOpenAI clientを使うなら互換path、Ollama固有のtruncateやembeddingsレスポンスを直接確認するならnative path、と目的で分けます。nativeのembeddings配列と、互換clientが返す形式を同じparserで読む前に、手元のresponseを確認してください。

$payload = @{
  model = "embeddinggemma"
  input = @("検索したい文書", "問い合わせの質問")
} | ConvertTo-Json -Depth 8

Invoke-RestMethod `
  -Uri "http://localhost:11434/v1/embeddings" `
  -Method Post `
  -ContentType "application/json" `
  -Body $payload
Ollama Embedding APIとRAGのindex query
RAGの段階行うこと固定する値
chunkPDFや本文を検索単位へ分割文字抽出、分割規則、重なり
index文書chunkをembedding化して保存同じmodel、tag、次元、前処理
query質問をembedding化して検索indexと同じmodel、次元、距離
retrievecosine similarityなどで候補を取り出すtop-k、閾値、候補の根拠
answer必要ならchat modelへ検索結果を渡す本文量、出典、回答検証

Ollama公式Embeddings capabilityでは、cosine similarityと、indexing・queryingで同じembedding modelを使う考え方が案内されています。検索結果がずれるときはchat modelだけを疑わず、chunk、embedding、次元、距離、検索候補の順に見ます。

ベクトルが作れない・検索がずれる時の切り分け

Embedding APIの失敗は、Ollama本体、model取得、input長、request field、vector DBのschema、検索評価を別の層として確認します。RAG全体を作り直す前に、PowerShellで1件のベクトルが返るところへ戻ると原因を絞りやすくなります。

Ollama Embedding APIのWindowsトラブル分岐
症状原因候補最初の確認
connection refusedOllama停止、port違い、localhost接続問題WindowsのOllama、localhost:11434、native /api/embed
model not foundpull前、tag違い、名前の入力ミスollama ls、ollama show、公式model名
inputが長すぎるcontext window超過、truncate=false短いchunk、truncate、分割規則
vector lengthが違うmodel変更、dimensions変更、index schema不一致model・次元・保存済みindexのmetadata
検索結果がずれる日本語との相性、chunk、距離、index/query model違い同じmodel、cosine、固定テスト質問
互換APIのparserが失敗native /api/embedと/v1/embeddingsのresponse混在pathごとに最小responseを保存して比較
  • 最初はlocalhostだけで検証し、embedding APIの疎通確認のためにLAN公開や認証緩和を追加しない。
  • 個人情報、社内文書、秘密鍵、実データを最初のembeddingテストへ入れず、公開可能な短文で確認する。
  • local model、cloud model、外部vector DB、文書チャットツールの通信・保存経路を別々に記録する。
  • 固定テスト文、モデル名、tag、次元、距離計算、top-k、期待する検索結果を保存してから設定を変える。

よくある質問

OllamaのEmbedding APIで使うendpointは何ですか?

Ollama native APIの中心はPOST http://localhost:11434/api/embedです。OpenAI形式のclientを使う場合はPOST /v1/embeddingsがあり、native pathとはrequestとresponse parserを分けて確認します。

Ollamaのchatモデルでembeddingを作れますか?

chat用モデルとembedding用モデルは役割が違います。Ollama公式Embeddings capabilityに掲載されたembeddinggemma、qwen3-embedding、all-minilmなどを候補にし、利用時点のmodel cardや公式表示、入力言語との相性を確認してください。

PowerShellでbatch embeddingを作るにはどうしますか?

POST /api/embedのinputへ文字列の配列を渡します。返ったembeddingsの順番が入力の順番と対応するか、件数と1ベクトルの長さを確認してからvector DBへ保存します。

truncateとdimensionsは何ですか?

truncateはcontext windowを超える入力を切り詰めるかを指定するfieldで、falseでは長さ超過時にerrorになる説明があります。dimensionsは生成する次元数を指定するfieldですが、modelや既存indexとの整合を先に確認します。

Embeddingのベクトル長は何で決まりますか?

ベクトル長はmodelやdimensions設定に関係します。index作成時とquery時でmodel・tag・dimensionsをそろえ、保存済みvector DBのschemaと一致するか確認してください。

Ollamaのnative /api/embedとOpenAI互換 /v1/embeddingsはどちらを使いますか?

Ollama固有のrequest・responseやtruncateを直接確認するならnative /api/embed、既存OpenAI clientへ接続するなら/v1/embeddingsが候補です。同じlocalhostでもpath・field・parserを混ぜません。

Embeddingを使ってもRAGの検索がずれるのはなぜですか?

embedding modelだけでなく、PDF文字抽出、chunk分割、index/queryで同じmodelを使っているか、ベクトル次元、cosine similarity、top-k、質問文が関係します。chat modelだけを変えず、検索候補を先に確認します。

次に読むおすすめルート

開発・API連携したい人

LM StudioとOllamaの違いを確認し、API、長文処理、RAGまで段階的に進みます。

  1. ローカルAIをAPIで使う方法
  2. WindowsでローカルAIコーディングを始める
  3. VS CodeでローカルAIを使う
  4. LM Studioのlms CLIを使う
  5. LM StudioのTool Useを使う
  6. LM StudioのStructured Outputを使う
  7. LM StudioのResponses APIを使う
  8. LM StudioのMCPをAPIで使う
  9. ローカルAIでJSON出力する方法
  10. LM StudioとOllamaの違い
  11. コンテキスト長とは
  12. RAG・埋め込み・ベクトルDBの仕組み
  13. OllamaのResponses APIを使う
  14. OllamaのAPI認証を確認する
  15. OllamaをWindowsのLANから使う前の確認
  16. OllamaのモデルID・能力を確認する
  17. OllamaのModelfileを使う
  18. Ollama native API streamingを使う
  19. Ollama Web Search APIを使う
  20. OllamaのThinkingを使う
  21. LM StudioのEmbedding APIを使う
  22. RAG評価と引用確認の基礎
  23. faithfulness確認
  24. ローカルRAGのプライバシー
  25. MCPとは
  26. ローカルLLMの安全性とプライバシー
  27. Gemma 4 12Bの更新メモ
  28. Hermes Desktopとは
  29. Hermes DesktopとLM Studio接続
  30. Hermes DesktopとOllama接続
  31. Hermes Desktop接続トラブル
  32. Hermes DesktopでOpenRouterを使う
  33. Hermes DesktopでDeepSeek APIを使う
  34. Hermes DesktopでProviderを使い分ける
  35. Hermes DesktopとLM Studio接続の確認ポイント
  36. Hermes AgentとDesktopの違い
  37. Ollamaとは
  38. Windows ARMでローカルAIを使う前の確認
  39. WindowsでOllamaをインストールする
  40. Ollamaのローカルモデルとcloudモデルの違い
  41. Ollamaのモデル保存場所と移動
  42. Ollamaのモデル一覧・削除・容量整理
  43. OllamaのOpenAI互換APIを使う
  44. Ollamaのtool callingを使う
  45. OllamaのStructured Outputsを使う
  46. OllamaのResponses APIを使う
  47. OllamaのAPI認証を確認する
  48. OllamaのモデルID・能力を確認する
  49. OllamaのModelfileを使う
  50. Ollama native API streamingを使う
  51. LM StudioのEmbedding APIを使う
  52. Ollamaの解説
  53. 診断基準
  54. 比較表

あなたはどのタイプ?

関連チェック先

  • Ollama Embeddings capability - embeddingモデル、semantic search、batch、L2正規化、cosine similarity、index/queryの考え方を確認できます。
  • Ollama Embed API - POST /api/embedのmodel、input、truncate、dimensions、keep_alive、embeddingsレスポンスを確認できます。
  • Ollama OpenAI compatibility - POST /v1/embeddingsのinput形式とnative /api/embedとの互換API境界を確認できます。
  • Ollama Windows - Windows版Ollama、localhost API、モデル利用の前提を確認できます。
  • Ollama CLI Reference - pull、ls、show、psなど、モデルの取得・確認・実行状態を見る入口を確認できます。
  • Ollama List models API - 保存済みモデルのname、size、digestなどを一覧する仕様を確認できます。
  • Ollama API Errors - APIエラーをstatusと本文から切り分けるための公式API資料を確認できます。

関連ツール

比較表を見る / 最初に検討しやすいツールを確認する