LM StudioのEmbedding APIをWindowsで使う方法|/v1/embeddings・Python・RAG
- 公開日
- 2026-08-09
- 更新日
- 2026-08-09
- 情報確認日
- 2026-08-09
- 編集・運営
- Local AI Compass
LM StudioのEmbeddingは、文章を意味ベクトルへ変換し、類似検索やRAGのindex・queryへつなぐための機能です。WindowsではDeveloper tabまたはlmsでserverを確認し、lms ls --embeddingでモデルを分け、OpenAI互換のPOST /v1/embeddings、lmstudio-python、lmstudio-jsを目的別に使います。chat用の/v1/chat/completionsや/v1/responses、native /api/v1/chatとEmbeddingのendpointを混ぜないことが最初のポイントです。
導入前に確認すること
- Windowsのバージョン、メモリ容量、GPU/VRAM、空き容量を確認する
- 最初は軽量モデル、短い質問、少ない同時作業から始める
- 公式サイトの対応OS、利用規約、モデルのライセンスを確認する
先に結論:LM Studioでは/v1/embeddingsとembedding SDKを分ける
LM Studio公式のOpenAI Compatibility docsでは、Responses、Chat Completions、Completions、Embeddingsが別endpointとして案内されています。Embeddingは回答文を生成するAPIではなく、入力文をベクトルへ変換する入口です。まず1件のベクトルを作り、件数とベクトル長を確認してからbatchやRAGへ進みます。
| 目的 | 最初に見る入口 | 確認すること |
|---|---|---|
| OpenAI形式のclientから使う | POST /v1/embeddings | base URL、model、input、responseのdata[0].embedding |
| Python SDKで直接使う | lms.embedding_model(...).embed() | embedding model handle、入力、返るvector |
| TypeScript/JavaScript SDKで使う | client.embedding.model(...).embed() | SDK package、model identifier、embedding property |
| 回答を生成する | /v1/chat/completions・/v1/responses・/api/v1/chat | chatのmessages/inputとEmbeddingを混ぜない |
| RAGのindex/queryを作る | chunk→embedding→retrieve | model、前処理、次元、距離、評価データ |
LM Studioのnative v1 REST APIの一覧はchat、models、load、download、unloadなどが中心で、EmbeddingsはOpenAI互換docsとPython・TypeScript SDKで案内されています。推測で/api/v1/embeddingsを作らず、公式の/v1/embeddingsまたはSDKを使います。
- 埋め込みモデルの基礎 - chat modelとembedding modelの役割を分ける
- RAG・埋め込み・ベクトルDB - 検索から回答までの全体像を見る
- LM Studio公式Embeddings - OpenAI互換の現行例を見る
Windowsでserver・embedding model・identifierを準備する
WindowsではLM StudioのDeveloper tabでserverを開始できます。公式CLIではlms server startとlms server statusも案内されています。モデルはlms ls --embeddingでLLMと分けて一覧し、GET /v1/modelsでAPIへ渡す実際のidentifierを確認します。画面表示、ダウンロード済みモデルのkey、ロード後のidentifierが一致するとは限らないため、文字列を推測しません。
- LM Studioを起動し、Developer tabでserverを開始する。端末運用ならlms server startとlms server statusを確認する。
- embedding modelがなければ公式の例を参考にlms getで取得し、lms ls --embeddingで保存済み一覧を確認する。
- lms psまたはDeveloper表示でロード状態を確認し、必要ならlms loadの--identifierでAPI用の名前を固定する。
- GET http://localhost:1234/v1/modelsでserverから見えるmodel identifierを取得する。portはDeveloper表示を優先する。
- 公開可能な短文を1件だけ送り、embedding responseの形を確認してから本文やPDFへ広げる。
lms get nomic-ai/nomic-embed-text-v1.5
lms ls --embedding
lms ls --embedding --json
lms ps
lms server start
lms server status公式のPython・TypeScript Embedding docsではnomic-ai/nomic-embed-text-v1.5が例に使われています。これは固定の推奨ランキングではありません。実際のmodel key、license、容量、日本語文書との相性、RAM/VRAM負荷を手元で確認してください。
- LM Studioのモデル保存場所 - 一覧、ロード、容量整理を確認する
- LM Studioのlms CLI - server、ls、psのWindows導線を見る
- LM Studio公式lms ls - --embeddingと--jsonの現行仕様を見る
PowerShellから/v1/embeddingsを1件・batchで呼ぶ
OpenAI互換のEmbedding endpointはPOST /v1/embeddingsです。WindowsのPowerShellではInvoke-RestMethodでmodelとinputをJSONにして送れます。公式Python例はclient.embeddings.createのdata[0].embeddingを読み取る形なので、PowerShellでも最初はHTTP応答全体を保存し、dataの件数、index、embeddingの要素数を確認します。
$payload = @{
model = "model-identifier-from-v1-models"
input = @(
"WindowsのローカルAIで文章検索を試す",
"同じembedding modelで文書と質問を変換する"
)
} | ConvertTo-Json -Depth 8
$result = Invoke-RestMethod `
-Uri "http://localhost:1234/v1/embeddings" `
-Method Post `
-ContentType "application/json" `
-Body $payload
$result.model
$result.data.Count
$result.data[0].index
$result.data[0].embedding.Count
$result | ConvertTo-Json -Depth 6
| 確認値 | 意味 | 最初の見方 |
|---|---|---|
| result.data.Count | 入力に対応するresponse itemの数 | batch入力の件数と対応するか |
| result.data[0].embedding | 1件目のベクトル | 保存前に要素数と数値形を確認する |
| result.data[0].index | 入力との対応順を確認する値 | 複数件の順番を取り違えない |
| result.model | responseが示すモデル名 | requestとserverの実際の識別子を記録する |
Ollama native /api/embedのtruncateやdimensionsを、そのままLM Studioの/v1/embeddingsへ追加しないでください。LM Studioの公式Embedding docsにあるrequest例と、手元のresponse・server設定を基準にします。認証を有効にしている場合は、設定したtokenを秘密情報として安全に渡します。
- LM Studio公式List Models - model identifierを先に確認する
- LM StudioのOpenAI互換API - base URL、localhost、clientの境界を見る
- OllamaのEmbedding API - native /api/embedとの設計差を比較する
Python:OpenAI clientとlmstudio-pythonを使い分ける
LM Studio公式には、OpenAI互換clientへbase_urlを指定するPython例と、lmstudio-pythonのembedding_model APIが別々に掲載されています。既存のOpenAI向け処理を再利用するなら互換client、LM Studioのモデルhandleを直接扱うならSDKという境界で考えます。どちらもこのリポジトリへ依存関係を追加するものではなく、利用者側のWindows環境で準備します。
from openai import OpenAI
client = OpenAI(
base_url="http://localhost:1234/v1",
api_key="lm-studio",
)
response = client.embeddings.create(
input=["WindowsでLM Studioのembeddingを試す"],
model="model-identifier-from-v1-models",
)
print(len(response.data))
print(len(response.data[0].embedding))import lmstudio as lms
model = lms.embedding_model("nomic-embed-text-v1.5")
embedding = model.embed("Windowsで意味検索を試す")
print(len(embedding))- OpenAI互換clientではbase_urlの末尾、model identifier、input形式、response.dataを確認する。
- lmstudio-pythonではlms.embedding_modelのhandle名を、公式例とlms lsの表示に合わせる。
- vectorを保存する前に入力ID、model名、前処理、要素数を一緒に記録する。
- pip installやSDK versionは利用者側の判断であり、このサイトのpackage.jsonやlockfileは変更していない。
- LM Studio公式Python Embedding - lms.embedding_modelとembedの現行例を見る
- LM Studio API server - Developer tabとlocalhostの前提を確認する
- LM Studio Responses API - 生成系endpointとの違いを見る
TypeScript・JavaScript:SDKとOpenAI互換を分ける
公式のlmstudio-js docsでは、@lmstudio/sdkのLMStudioClientからembedding modelを取得し、model.embedを呼ぶ例が案内されています。Node.jsアプリがLM Studio固有のmodel handleを使うならSDK、既存のOpenAI互換コードを維持するならOpenAI clientのbaseURL変更という分け方ができます。ブラウザからlocalhostへ接続する場合はCORS、認証、公開範囲を別途確認します。
import { LMStudioClient } from "@lmstudio/sdk";
const client = new LMStudioClient();
const model = await client.embedding.model("nomic-embed-text-v1.5");
const { embedding } = await model.embed("WindowsでRAGのqueryを作る");
console.log(embedding.length);import OpenAI from "openai";
const client = new OpenAI({
baseURL: "http://localhost:1234/v1",
apiKey: "lm-studio",
});
const response = await client.embeddings.create({
input: ["検索対象の文書chunk"],
model: "model-identifier-from-v1-models",
});
console.log(response.data[0].embedding.length);
| 選択 | 向いている入口 | 切り分ける値 |
|---|---|---|
| @lmstudio/sdk | LM Studioのembedding model handleを使う | package version、handle、embedding property |
| OpenAI互換client | 複数providerで同じclient形を使う | baseURL、model、input、response.data |
| PowerShell HTTP | 依存を増やさずrequestを観察する | URL、JSON、HTTP status、response本文 |
SDKを導入したのにHTTPが届かない場合は、LM Studio server、model、SDK接続先を分けて確認します。公式コードのpackage導入は利用者側で実施し、実際のmodel identifierやAPI tokenをソースへ固定しません。
- LM Studio公式TypeScript Embedding - LMStudioClientとembedの現行例を見る
- WindowsローカルAIコーディング - SDKやAPIをアプリへ組み込む前提を見る
- LM Studio Structured Output - 生成系SDKとresponse parserの分離を見る
RAGのindex・queryでmodelと前処理をそろえる
EmbeddingをRAGへ使うときは、PDFや本文をchunkへ分け、各chunkをembedding化して保存し、質問も同じ条件でembedding化して候補を検索します。LM Studio公式docsはEmbeddingをRAGとsimilarity-based tasksのbuilding blockとして説明していますが、chunk規則、vector DB、距離、top-k、引用の正しさまで自動保証するものではありません。
| 段階 | 行うこと | 固定・記録する値 |
|---|---|---|
| chunk | PDF・HTML・本文を検索単位へ分割 | 文字抽出、分割規則、重なり、source ID |
| index | 文書chunkをembedding化して保存 | model identifier、model version、vector length、metadata |
| query | 質問を同じ条件でembedding化 | 前処理、model、vector length、質問ID |
| retrieve | vector DBや検索処理で候補を並べる | 距離・類似度、top-k、threshold、評価質問 |
| answer | 必要ならchat modelへ候補を渡す | 引用source、context量、回答の検証 |
index: chunks -> embedding model -> vector store
query: question -> same embedding model -> similarity search
answer: retrieved chunks -> chat model -> cited response- indexとqueryで同じembedding model、前処理、ベクトル要素数を使う。modelを変えたら既存indexをそのまま使えると決めつけない。
- cosine similarityなどの距離を選ぶ場合はvector libraryの仕様と正規化条件を確認し、固定質問で検索順位を比較する。
- 日本語PDFではOCR・文字抽出・chunk分割の失敗をembedding modelの問題と混同しない。
- 必要な候補だけをchat modelへ渡し、embedding APIが回答の正しさや引用を保証すると断定しない。
- RAG・埋め込み・ベクトルDB - indexから回答までの仕組みを確認する
- 日本語PDFとembedding - 日本語文書で検索を評価する観点を見る
- ローカルRAGのプライバシー - 文書・vector DB・外部送信を分けて確認する
404・model not found・検索ずれをWindowsで切り分ける
Embeddingの失敗は、LM Studio server、モデル一覧、endpoint path、model identifier、SDK接続先、RAGのindex schemaを別の層として確認します。最初からPDFや実データを投入せず、PowerShellの短文requestで1件のresponseが返るところまで戻ると原因を絞りやすくなります。
| 症状 | 原因候補 | 最初の確認 |
|---|---|---|
| connection refused | server停止、port違い、Developer tab未開始 | lms server status、Developer表示、localhost |
| 404 /api/v1/embeddings | native RESTとOpenAI互換pathの取り違え | 公式のPOST /v1/embeddingsへ戻る |
| model not found | model keyとAPI identifierの混同 | lms ls --embedding、GET /v1/models、lms ps |
| dataが空・parser失敗 | input形式、client、response shapeの違い | PowerShellでresponse全体を保存して比較する |
| vector lengthが合わない | model変更、index schema不一致、別provider混在 | model・要素数・index metadata |
| 検索結果がずれる | 抽出、chunk、前処理、距離、top-k、評価不足 | 固定質問と候補sourceを順番に確認する |
- 最初はlocalhostだけで検証し、疎通確認のためにLAN公開や認証無効化を追加しない。
- 個人情報、社内文書、秘密鍵、実データを最初のembeddingテストへ入れず、公開可能な短文を使う。
- local model、外部provider、OpenAI互換client、外部vector DB、文書チャットツールの通信・保存経路を別々に記録する。
- モデル名、SDK version、server port、vector length、距離計算、top-k、期待する検索結果を変更前に保存する。
- LM Studio API server - server起動と接続先の公式前提を見る
- LM StudioのResponses API - 生成系pathの404やstateful境界を確認する
- ローカルAIの症状別トラブル - localhost・モデル・APIの共通診断へ進む
よくある質問
LM StudioのEmbedding APIで使うendpointは何ですか?
OpenAI互換のPOST /v1/embeddingsが中心です。LM Studio公式にはPython・TypeScript SDKのembedding model APIもあるため、native /api/v1/embeddingsを推測せず、互換endpointかSDKを目的別に選びます。
LM Studioでembedding modelを探すにはどうしますか?
lms ls --embeddingでダウンロード済みのembedding modelだけを一覧し、GET /v1/modelsでserverから見えるAPI用identifierを確認します。公式例のmodel名を自分の環境へ固定せず、実際の表示を使ってください。
PowerShellからLM Studioのembeddingを呼べますか?
呼べます。Invoke-RestMethodでhttp://localhost:1234/v1/embeddingsへmodelとinputをJSONでPOSTし、まずresponse.dataの件数とdata[0].embeddingの形を確認します。portと認証はDeveloper表示・server設定を優先します。
lmstudio-pythonとOpenAI Python clientはどちらを使いますか?
既存のOpenAI互換コードを再利用するならbase_urlをLM Studioへ向けるclient、LM Studioのembedding model handleを直接扱うならlmstudio-pythonが候補です。SDKと互換APIでmodel identifierやresponseの読み方を混ぜません。
Embeddingのベクトル長は固定ですか?
固定値を記事側で決めないでください。modelやSDK・serverの実際のresponseから1ベクトルの要素数を読み、index作成時とquery時、vector DB schemaへ同じ値を記録します。
LM StudioのEmbeddingをRAGで使うときの注意点は何ですか?
文書chunkと質問で同じembedding model、前処理、ベクトル要素数、距離計算を使います。検索結果の正しさはPDF抽出、chunk、top-k、引用確認にも左右されるため、固定質問で候補を評価してください。
LM StudioのEmbeddingなら外部へデータは送信されませんか?
localhostのモデルだけを使う構成では外部送信を減らせる可能性がありますが、LM Studioの設定、外部provider、client、vector DB、文書ツールで通信経路は変わります。server公開、認証、保存先、実データを別々に確認してください。
次に読むおすすめルート
開発・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を使う
- 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のOpenAI互換APIを使う
- Ollamaのtool callingを使う
- OllamaのStructured Outputsを使う
- OllamaのEmbedding APIを使う
- OllamaのResponses APIを使う
- OllamaのAPI認証を確認する
- OllamaのモデルID・能力を確認する
- OllamaのModelfileを使う
- Ollama native API streamingを使う
- 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まで段階的に進みます。
関連チェック先
- LM Studio Embeddings - OpenAI互換のEmbeddings endpointとPython clientの公式例を確認できます。
- LM Studio OpenAI Compatibility - /v1/embeddings、base URL、localhost:1234、model identifierの互換API入口を確認できます。
- LM Studio List Models - GET /v1/modelsでserverから見えるモデルを確認する公式例です。
- lmstudio-python Embedding - lms.embedding_modelとembed methodによるPython SDKの公式例を確認できます。
- lmstudio-js Embedding - LMStudioClientのembedding model handleとembed methodによるTypeScript SDKの公式例です。
- LM Studio REST API - native /api/v1/*の対応範囲とOpenAI互換endpointとの機能境界を確認できます。
- LM Studio local server - Developer tab、localhost server、lms server startの前提を確認できます。
- LM Studio lms CLI - lms ls、lms ps、server操作、モデル取得のCLI入口を確認できます。