LM Studio をOpenAI形式のAPIサーバーに変換する (2026)
LM Studioで「Developer」タブを開き、「Start server」スイッチを有効にしてください。サーバーはポート1234でリッスンし、OpenAI互換のエンドポイント(/v1/chat/completions、/v1/responses、/v1/embeddings、/v1/models)を公開します。ベースアドレスを変更するだけで、すべてのOpenAIクライアントが動作します。デフォルトでは認証を要求せず、localhostでのみリッスンします。APIトークンとネットワークアクセスは「Server Settings」で設定できます。
LM Studioは単なるチャットインターフェースではありません。そのローカルサーバーは、テキストを一行も外部に送信せずに、スクリプト、コードエディター、エージェントで利用するOpenAIのAPIを置き換えます。このガイドでは、バージョン0.4での変更を踏まえ、サーバーの有効化、各設定、認証付きのネットワーク経由のアクセス、モデルのオンデマンド読み込み、そして1台のコンピューターで運用する場合の実際の限界を説明します。
#得られるもの
このガイドを終えると、http://localhost:1234/v1というアドレスを利用できるようになります。どのOpenAI SDK(Python、JavaScript、C#)でも、LangChainでも、ClineやContinueなどのコーディングツールでも、OpenAIのAPIの代わりにこのアドレスを使用できます。サーバーは、/api/v1でネイティブAPI(状態を保持するチャット、モデルの読み込みとダウンロード)も提供し、Anthropic互換のエンドポイントも備えています。すべてが手元のマシン内に留まります。自分でサーバーをネットワークに公開しない限り、モデル、リクエスト、レスポンスがそのマシンの外に出ることはありません。
#1. サーバーを起動
お使いのマシンで、プライベートかつ無料のChatGPTを1時間で構築 — LM Studio、Ollama、Open WebUI、ご自身のドキュメント、クラウド不要。
- 永久に利用できるオンラインスペース
- PDF + ファイル
- 生涯アップデート
- 01「Developer」タブを開くLM Studioでは、Developerタブにサーバー、ログ、設定がまとめられています。使用するモデルは事前にダウンロードする必要があります。
- 02Start serverを有効化Start server スイッチを切り替えると、Server Settingsに記載されたポート(ドキュメントの例では1234)でサーバーが起動します。
- 03またはコマンドラインから起動するターミナルからlms server startと入力することで、同じサーバーが起動し、インターフェースを開く必要はありません。
- 04モデル一覧を確認してください/v1/modelsにリクエストを送り、サーバーが応答することと、リクエストで使用するモデルの識別子を確認してください。
#2. サーバー設定を一つずつ確認
設定はDeveloperのServer Settingsにあります。誰がサーバーに接続できるか、クライアントがサーバーに何を要求できるかを決定します。統合のほとんどの問題はこれらのスイッチのいずれか、特にネットワークまたはCORSの設定に起因します。
| 設定 | 役割 | 推奨 |
|---|---|---|
| Server Port | サーバーの待ち受けポート(ドキュメントでは1234) | ポートがすでに使用されている場合は、ポート番号を変更してください |
| Require Authentication | Authorizationヘッダーに有効なAPIトークンが必要です | サーバーをlocalhost以外からアクセスできるようにする際は、すぐに有効にしてください |
| Serve on Local Network | ローカルネットワーク上の他のデバイスからサーバーにアクセスできるようにする | デフォルトで無効です。認証と併用してください |
| Allow per-request MCPs | クライアントが一時的なMCP遠隔サーバーを使用できるようにする | 明確な必要性がない限り、無効のままにしてください。 |
| Allow calling servers from mcp.json | LM Studio に定義された MCP サーバーをクライアントが利用できるようにします | 認証が必要です。MCPがあなたのファイルにアクセスする場合、リスクが高まります |
| Enable CORS | 別のオリジンのWebアプリケーションからのアクセスを許可します | ウェブアプリケーションまたは特定の拡張機能向けにのみ適用されます |
| Just in Time Model Loading | 要求の際にモデルをロードします | サードパーティ製ツールとの連携に便利。詳しくは該当セクションを参照 |
| Auto Unload Unused JIT Models | 使われなくなったJITモデルをメモリから解放 | メモリを解放します |
| Only Keep Last JIT Loaded Model | オンデマンドで読み込まれたモデルのうち、最後のモデルだけを保持します | VRAMが限られている場合に有用です |
#3. curlでテストする
サーバーの動作確認には、最初にテスト用の呼び出しを1回行えば十分です。リクエストの model フィールドには、local-model のような一般的な名前ではなく、LM Studio に表示されるとおりのモデル識別子を指定する必要があります。ドキュメントの curl の例でも、この点が念押しされています。
回答はOpenAI形式のJSONです : choices[0].message.contentにテキストが含まれます。modelフィールドが誤っている場合、またはオンデマンドロードが無効であり、モデルがロードされていない場合、リクエストは失敗します : まず/v1/modelsから返されたIDを確認してください。
#4. Pythonから呼び出し
openai SDKは、ベースURLだけを変更して使用できます。これは、LM Studioのドキュメントで示されている変更です。SDKにはキーが必要ですが、認証が無効になっている間は、LM Studioはそのキーを検証しません。認証を有効にした場合は、キーとして自分のAPIトークンを使用します。
ストリーミングはOpenAIと同様に動作し、トークンをリアルタイムで表示するためにクライアント側を変更する必要はありません。LM Studioは、エージェントやエディタ向けに、後ほど紹介する/v1/responsesエンドポイントも実装しています。
#どのAPIを選ぶか:OpenAI、Anthropic、それともネイティブAPI
LM Studioは3系統のエンドポイントを提供します。OpenAI互換エンドポイントは、モデル、レスポンス、チャット、埋め込み、補完に対応しています。Anthropic互換エンドポイントは、Anthropicのメッセージ形式を受け付けます。バージョン0.4.0以降、ネイティブAPI /api/v1には、状態を保持するチャット、モデルの読み込み・アンロード・ダウンロード、リクエストごとのコンテキスト設定など、LM Studio固有の機能が追加されています。
| ニーズ | Endpoint | 注記 |
|---|---|---|
| 既存ツールで使われている OpenAI API を置き換える | /v1/chat/completions | ストリーミングおよびカスタムツールがサポートされています |
| エージェントまたはCodex型のクライアント | /v1/responses | 状態付きチャットおよびMCPが利用可能 |
| RAG用の埋め込みベクトル | /v1/embeddings | 事前にロードされた埋め込みモデル |
| Anthropic フォーマットをサポートするクライアント | Anthropic と互換性のあるエンドポイント | 同じサーバー、別のメッセージフォーマット |
| モデルを読み込む、メモリから解放する、ダウンロードする | /api/v1/models/* | ネイティブAPI、LM Studio が 0.4.0 から推奨しています |
| リクエストにコンテキストを設定する | /api/v1/chat | リクエストごとにコンテキストを受け付ける唯一のエンドポイント |
#6. 複数のモデル:オンデマンド読み込みとTTL
オンデマンド読み込み(JIT、Just in Time)では、モデルを最初に呼び出した時点でメモリに読み込みます。また、/v1/models は読み込み済みのモデルだけでなく、ダウンロード済みのすべてのモデルを一覧表示します。JIT を使わない場合、/v1/models が返すのは読み込み済みのモデルだけで、呼び出す前にモデルを読み込んでおく必要があります。このモードは、Zed、Cline、Continue などのツールが自ら使用するモデルを選ぶ場合に最適です。
- デフォルトのTTL
- 必要に応じてロードされたモデルは、リクエストがない状態が60分続くとアンロードされます。
- リクエストごとのTTL
- リクエストに ttl(秒単位)フィールドを追加してください。300は5分を意味します。
- lms loadのTTL
- lms load で読み込んだモデルはデフォルトでTTLが設定されていません。--ttl オプションを使用してください。
- Auto-Evict
- デフォルトで有効:オンデマンドで読み込まれた単一のモデルのみがメモリに保持されます。無効にすると、複数のモデルを保持できます。
#7. ネットワーク上にサーバーを公開し、認証を有効にする
同じネットワーク上の別のコンピューターからサーバーを呼び出せるようにするには、Server SettingsでServe on Local Networkを有効にするか、待ち受けアドレスを0.0.0.0にして起動してください。すると、サーバーの待ち受け先はlocalhostだけではなくなります。ドキュメントでは、127.0.0.1以外のアドレスにバインドすると、そのマシンの外部からアクセスできるようになると警告し、認証を有効にすることを推奨しています。
よくある誤解とは異なり、LM Studio はリクエストを認証できます。デフォルトでは認証を要求しませんが、Server Settings でスイッチを有効にすると、Manage Tokens で権限を選んで作成した有効な API トークンを含むリクエストだけを受け付けるようになります。トークンは作成時にしか表示されないため、すぐにコピーしてください。この機能には LM Studio 0.4.0 以降が必要です。
インターネットからのアクセスの場合、ポートを公開しないでください。VPNまたはTLSを用いたリバースプロキシ経由でアクセスしてください。これは、セキュリティガイドに詳述されているOllamaサーバーの原則と同様です。別のマシンのモデルを使用する場合のより簡単な代替案として、LM Linkがあります。これは、リモートデバイスのモデルをローカルにロードされたもののように提供します。
#グラフィカルインターフェースなし:llmsterと自動起動
バージョン0.4.0以降、LM Studioの中核は独立したデーモンllmsterとしても提供されており、Linuxサーバー、GPUマシン、ローカルPCで、画面インターフェースなしで動作するよう設計されています。1行のコマンドでインストールし、lms daemon upで起動した後、lms server startでサーバーを開始します。画面インターフェースのあるPCでは、アプリの設定でログイン時にサーバーを起動するオプションにチェックを入れることもできます。この場合、アプリを閉じるとシステムトレイに最小化され、サーバーは動作を続けます。
#9. パフォーマンス:本当に重要なこと
- GPUオフロード
- できるだけ多くのレイヤーをVRAMに読み込んでください。VRAMに収まりきらずシステムRAMも使うモデルは、生成速度の大部分を失います。
- Context Length
- 最大のコンテキスト長ではなく、必要な長さを選んでください。コンテキストのキャッシュはVRAMを消費し、その使用量はコンテキストが長くなるほど増えます。
- Max Concurrent Predictions
- モデルが同時に処理するクエリ数。これを超えると、クエリはキューで待機します。
- 統合型KVキャッシュ
- デフォルトで有効です。リソースをリクエストごとに固定の割合で分けないため、さまざまなサイズのリクエストに対応できます。
Flash Attentionのガイドとコンテキストウィンドウのガイドでは、メモリへの影響を詳しく説明しています。複数ユーザー向けに高いスループットが必要な場合は、専用サーバーのほうが適しています。vLLMのガイドでは、そのデプロイ方法を紹介しています。
#制限と代替案:変更点
頻繁に引用されるいくつかの制限はもう正確ではありません。それらを修正することで、ツールの選定が変わります。以下の表は、今なお読まれている情報と現在のドキュメントに記載されている内容を比較しています。
| 誤解 | 現実 |
|---|---|
| 認証なし | APIトークンは0.4.0以降で利用可能で、デフォルトでは無効になっています |
| リクエストは順次実行される | 0.4.0では、同じモデルへの並列リクエストをMax Concurrent Predictionsの上限まで処理します(継続的バッチ処理)。上限を超えたリクエストは待機します。 |
| 仕事での利用には商用ライセンスが必須 | LM Studioの発表によると、2025年7月から自宅でも職場でも無料で利用できます |
| グラフィカルインターフェースなしでは実現できません | llmsterはGUIなしでデーモンとして動作します |
| ワークステーションは1台のみで、共有は行いません | 「Serve on Local Network」とLM Linkを使えば、他のデバイスにもサービスを提供できます。 |
実際の制約は残ります。LM Studioは単一のワークステーション向けに作られており、クラスター向けではありません。連続バッチ処理は、vLLMのように数十人のユーザーを想定して設計されたサーバーの代わりにはなりません。また、アプリケーションの更新によって動作が変わる可能性があるため、サービスを提供するマシンではバージョンを固定する必要があります。LM Studioと競合製品のどちらを選ぶかは、導入を決める前に比較してください。
- 出典:LM Studioのドキュメント、ローカルAPIサーバー
- 出典:LM Studioのドキュメント、サーバーの設定
- ソース:LM Studio ドキュメント、認証
- 出典:LM Studioのドキュメント、OpenAI互換性
- 出典:LM Studio 0.4.0 のアナウンス
LM StudioにおけるAPIサーバーを有効にする方法は?+
LM Studioサーバーに別のPCからアクセスできるようにするにはどうすればよいですか?+
LM StudioはAPIに認証機能がありますか?+
LM Studio は複数のリクエストを並列処理しますか?+
modelフィールドにどのような識別子を入力すべきですか?+
LM Studioは企業用途で無料ですか?+
ご意見、誤りのご指摘、補足はありますか?ぜひお知らせください。皆さんにとってより良いガイドにするために役立ちます。