LM Studio は、ローカルにロードされたモデルを OpenAI 互換インターフェイスに変換できます。既存のプロジェクトの場合、通常、呼び出しロジックを書き直す必要はありません。OpenAI クライアントの base_url を LM Studio のローカル アドレスに変更し、次に model を LM Studio のモデル識別子に変更します。
最も一般的に使用されるアドレスは次のとおりです。
|
|
既存の Python、JavaScript、C#、またはその他の OpenAI クライアント コードにプラグインするのに適しています。以下の手順は、「最初に実行してからプロジェクトにアクセスする」という順序になっています。
まず結論から話しましょう
LM Studio の OpenAI 互換インターフェイスを使用するには、次の 4 つの手順を完了するだけで済みます。
- LM Studio の 開発者 ページでローカル サーバーを起動します。
- チャットモデルをロードします。
http://localhost:1234/v1/modelsをリクエストし、モデル ID を確認します。- クライアント
base_urlをhttp://localhost:1234/v1に変更します。
最小限の Python 記述:
|
|
api_key="lm-studio" は、認証が有効になっていない場合の OpenAI SDK の単なるプレースホルダー値です。 LM Studio サービス設定で API トークンを有効にしている場合は、実際のトークンに変更する必要があります。
ステップ 1: LM Studio ローカルサーバーを起動する
LM Studio を開き、開発者 ページに入り、サーバーの開始 スイッチをオンにします。デフォルトのサービスは以下をリッスンします。
|
|
LM Studio コマンド ライン ツールを使用して以下を開始することもできます。
|
|
lms がコンピュータで利用できない場合は、LM Studio の公式ドキュメントに従って CLI をインストールできます。
|
|
サービスの開始は、API ポートがリッスンしていることを意味するだけで、推論できるモデルがあることを意味するわけではありません。引き続きチャット ページまたは開発者ページでモデルをロードするか、lms load を使用してモデルをロードします。
ステップ 2: まずモデル ID を取得します
ファイル名に基づいて model パラメーターを推測しないでください。最も安定した方法は、モデルのリストをリクエストすることです。
|
|
Windows PowerShell は次の場合に使用できます。
|
|
返された data リストにはモデル識別子が含まれます。次に、リクエストで実際に返された ID を model に入力します。
この手順により、モデルがダウンロードされているがロードされていない、またはコードに記述された名前が LM Studio によって現在公開されているモデル ID と一致していないという 2 つの一般的な問題を回避できます。
ステップ 3:curl を使用してチャットの完了をテストする
最も直感的な OpenAI 互換エンドポイントを使用して最初のテストを行います。
|
|
成功した場合、通常、答えは次のようになります。
|
|
チャット完了は、チャット モデルのプロンプト テンプレートを自動的に適用します。モデル自体がチャット/命令タイプである限り、通常、クライアント側で特別な制御トークンを手動で結合する必要はありません。
OpenAI を Python プロジェクトに置き換える方法
プロジェクトが元々 OpenAI Python SDK を使用している場合、通常は base_url と model の 2 つの焦点のみがあります。
|
|
この利点は、アプリケーション層が引き続き OpenAI SDK のオブジェクトと戻り形式を使用し、バックエンドがクラウド OpenAI API とローカル LM Studio の間で切り替えることができることです。
ただし、「互換性」とは、クラウド モデルのすべての機能をそのままコピーできることを意味するものではありません。ツール呼び出し、構造化出力、ビジュアル入力、推論コンテンツ、および応答 API が利用できるかどうかは、依然として LM Studio のバージョン、現在のモデルの機能、および対応するエンドポイントのサポートに依存します。
ストリーミング出力
チャット完了に stream=True を設定します。
|
|
ストリーミング出力は、チャット インターフェイス、ターミナル ツール、および長い回答に適しています。これにより、ユーザーの待機エクスペリエンスが向上しますが、ローカル モデル自体の生成が高速化されるわけではありません。
埋め込み、レスポンス、ネイティブ REST API のいずれかを選択する方法
LM Studio の OpenAI 互換性レイヤーには、次の共通エンドポイントが含まれています。
| 終点 | 何に適しているか |
|---|---|
/v1/models |
現在利用可能なモデルを問い合わせる |
/v1/chat/completions |
ほとんどの従来のチャット コードと互換性があります |
/v1/responses |
新しい OpenAI Response スタイルが必要な場合に使用します。 |
/v1/embeddings |
ベクトル化されたテキスト、RAG 取得 |
/v1/completions |
従来のテキスト補完との互換性 |
LM Studio には独自のネイティブ インターフェイスもあります。現在推奨されるパスは、/api/v1/chat や /api/v1/models などの /api/v1/* です。ネイティブ API は、モデルのロード/アンロード、ステートフル チャット、MCP または LM Studio 固有の機能を必要とするプロジェクトに適しています。
簡単な判断: すでに OpenAI SDK プロジェクトがある場合は、最初に /v1 を使用します。新しいプロジェクトでローカル モデルの詳細な管理が必要な場合、または LM Studio の専用機能を使用する場合は、/api/v1 を検討してください。
構造化された出力とツール呼び出し
LM Studio の OpenAI 互換性レイヤーは、対応するエンドポイントでのツール呼び出しと構造化出力をサポートしていますが、最初に次の 2 つのことを確認してください。
- ロードするモデルには、信頼性の高いツール呼び出し機能または JSON 出力機能が必要です。
- LM Studio とクライアント SDK のバージョンは十分に新しいものである必要があります。
リクエストにエラーがないからといって、モデルがスキーマに準拠した結果を安定して生成できるとは考えないでください。テストは、オンラインにする前に、実際のパラメータ、異常な分岐、および複数ラウンドのリクエストを使用して実行する必要があります。
一般的なエラーのトラブルシューティング
1. 接続が拒否された、または Connection refused
まず、開発者ページでサーバーが起動していることを確認してから、以下をテストします。
|
|
ここに接続できない場合は、まずポート、LM Studio がまだ実行中かどうか、またはローカル セキュリティ ソフトウェアがローカル ポートをブロックしていないかどうかを確認してください。
2. 404 Not Found
最も一般的な理由は、パスが正しく書かれていないことです。 OpenAI 互換のチャット エンドポイントは次のとおりです。
|
|
/api/v1/chat/completions ではありません。後者は、別のネイティブ API パスのセットに属します。
3. モデルが存在しないか、空のリストが返される
まず LM Studio にモデルをロードし、/v1/models が返されることを確認します。コード内の model は、実際に返された識別子を使用する必要があり、他の人のモデル名をコピーしないでください。
4. 答えられるが形式がおかしい
指示/チャット モデルの代わりに基本モデルがロードされていることを確認します。チャット テンプレートが LM Studio によって自動的に適用されていることも確認してください。ツール呼び出しと JSON 出力については、モデルが実際にその機能をサポートしていることも確認してください。
5. LANデバイスにアクセスできない
LM Studio は、開発者ページでローカル ネットワークへのサービスを構成できます。ネットワーク アクセスを有効にした後、ファイアウォール、リスニング アドレス、API トークンの設定を確認する必要もあります。認証されていないローカル モデル サービスをパブリック ネットワークに直接公開しないでください。
最小限のアクセスのチェックリスト
|
|
最初に最小限のリクエストを実行してから、RAG、エージェント、またはエディター プラグインに接続すると、トラブルシューティングがはるかに簡単になります。
要約する
LM Studio の OpenAI 互換インターフェイスは、ローカル モデルを既存の OpenAI SDK プロジェクトに接続するのに適しています。最も重要なことは、コードの一部をコピーすることではなく、サービスが開始されていること、モデルがロードされていること、base_url が /v1 を指していること、model が実際のモデル ID を使用していることを確認することです。
より詳細なローカル モデル管理、ステートフル チャット、または MCP が必要な場合は、LM Studio の /api/v1/* ネイティブ インターフェイスの方が適しています。古いプロジェクトとの迅速な互換性が目的の場合、通常は /v1/chat/completions を使用し続けるのが最も簡単です。
参照: