Codex でローカルの大規模モデルを使用する場合は、OpenAI 互換アドレスをプロジェクト構成に直接接続しないでください。現在、Codex には、より信頼性の高いローカル モデル パス、OSS モード があります。 Ollama または LM Studio をローカル プロバイダーとして選択することをネイティブにサポートします。
最も短いコマンドは次のとおりです。
|
|
または:
|
|
vLLM、LiteLLM、またはその他の OpenAI 互換ゲートウェイを自分でデプロイする場合は、openai_base_url の高度な構成を調べることができます。ただし、このパスでは、サービスが Codex で必要な API 動作と完全に互換性がある必要があり、トラブルシューティングのコストが高くなります。組み込み OSS モードと混同しないでください。
まず正しいルートを選択してください
| あなたのローカルサービス | 推奨接続方法 | 誰に適しているか |
|---|---|---|
| オラマ | codex --oss --local-provider ollama |
ローカル モデルをできるだけ早く実行したい |
| LMスタジオ | codex --oss --local-provider lmstudio |
LM Studio でダウンロードおよび管理されたモデル |
| vLLM / 自社構築OpenAI対応サービス | ユーザーレベル openai_base_url |
API の互換性、認証、モデル ルーティングを理解している上級ユーザー |
一般の個人ユーザーは、最初に Ollama または LM Studio を実行することをお勧めします。 Codex の --oss は、指定されたローカル OSS プロバイダーを使用します。 --local-provider が渡されず、デフォルト値が設定されていない場合、対話型 CLI は選択を求めるプロンプトを表示しますが、codex exec は直接エラーを報告します。
解決策 1: Ollama を使用して Codex に接続する
1. Ollama とモデルが利用可能であることを確認します
まず、Ollama が利用可能かどうかを確認します。
|
|
モデルがない場合は、まずローカル ビデオ メモリに適したコードまたは一般的なモデルをダウンロードします。次に例を示します。
|
|
個別にテストします。
|
|
モデルを Ollama で実行できない場合は、まずビデオ メモリ、ドライバー、モデルのダウンロード、または Ollama サービスの問題を解決します。トラブルシューティングのために Codex に直接アクセスしないでください。
2. 使い捨てローカルモデル
プロジェクトディレクトリで実行します。
|
|
次に、通常どおりタスクを入力します。例:
|
|
これは現在のセッションにのみ影響します。一時的に通常の Codex に戻したい場合は、--oss なしで起動してください。
3. Ollama をデフォルトのローカルプロバイダーとして設定します
ローカル モデルを頻繁に使用する場合は、ユーザー レベル Codex 構成ファイルに次の内容を追加します。
|
|
その後、直接実行できます。
|
|
User-level configuration of Codex is usually located under CODEX_HOME, and the default is ~/.codex/config.toml;一般的な Windows パスは次のとおりです。
|
|
変更後にコーデックスを再度開きます。複雑な構成がある場合は、config.toml をバックアップしてから、この行のみを追加してください。元のサンドボックス、MCP、スキル、その他の設定を上書きしないでください。
オプション 2: LM Studio を使用して Codex に接続する
LM Studio は、GGUF モデルをダウンロードし、グラフィカル インターフェイスを使用してコンテキストと GPU オフロードを調整したい人に適しています。
1. LM Studioでローカルサービスを開始し、モデルをロードします。
LM Studio の 開発者 ページに入り、サーバーを起動し、チャット/指示モデルがロードされていることを確認します。 LM Studio のローカル API は、デフォルトで次の場所でリッスンします。
|
|
最初にモデル サービスを確認できます。
|
|
ここで返されるのは、LM Studio 側のモデルのステータスです。これは、サービスとモデルの両方の準備ができていることを確認するのに役立ちます。
2. Codex OSS モードで開始します
|
|
長期的なデフォルト構成:
|
|
次に、次を使用します。
|
|
LM Studio のモデル コンテキストの長さ、GPU オフロード、推論パラメータは引き続き LM Studio によって管理されます。 Codex の応答が遅い場合は、まずモデル サイズがビデオ メモリを超えていないか、コンテキストの設定が長すぎないか、他のローカル推論サービスが同時に GPU を占有しているかどうかを確認します。
オプション 3: vLLM などの OpenAI 互換 API の高度な接続方法
vLLM、LiteLLM、エンタープライズ ゲートウェイ、および一部のエージェントは、OpenAI 互換の /v1 インターフェイスを提供します。 Codex の公式構成リファレンスでは、組み込みの openai プロバイダーのベース アドレスをオーバーライドする openai_base_url が提供されています。
概略構成:
|
|
サービスが LAN ホスト上にある場合:
|
|
この道路には注意すべき境界線が 4 つあります。
- **ユーザー レベル
~/.codex/config.tomlでのみ書き込まれます。 ** Codex は、リポジトリがマシンのモデル プロバイダーを密かに変更するのを防ぐために、プロジェクト.codex/config.tomlのopenai_base_url、model_provider、およびmodel_providersを無視します。 - サービスは「
/v1/chat/completions」だけあれば十分ではありません。 Codex 固有のワークフローには、モデル、ストリーミング応答、ツール呼び出し、またはその他の互換性のある動作が必要な場合があります。 - 認証はゲートウェイによって決定されます。ゲートウェイにベアラー トークンが必要な場合は、ゲートウェイと Codex の現在の認証構成に従って正しく設定する必要があります。トークンをウェアハウス ファイルに書き込まないでください。
- これは、Codex にリストされている OSS の公式のローカル プロバイダーではありません。例外が発生した場合は、まず Ollama または LM Studio を使用して Codex OSS モードを確認し、次にゲートウェイの互換性を確認します。
vLLM サービスは、最初に個別に検証できます。
|
|
コマンドがモデルの安定したリストを返した後にのみ、コーデックスのユーザーレベル openai_base_url のチェックが継続されます。
モデルの選び方
ローカル モデルが「使用できる」かどうかと、「公式 Codex モデルと同じくらい信頼できる」かどうかは別のことです。コード エージェントは通常、長いコンテキスト、安定したツール呼び出し、強力なコード理解、および十分に速い生成速度を必要とします。
選択するときは、少なくとも次の点に注目してください。
- ビデオ メモリがモデルの重みと共通のコンテキストに対応できるかどうか。
- モデルが命令/チャット モデルであるか、特殊なコード モデルであるか。
- ファイルの変更、テスト、コマンド実行の要件に安定して準拠できるかどうか。
- 必要なツール呼び出しまたは JSON 出力をサポートしているかどうか。
- 長いタスクの下では、軌道から逸れたり、制約を忘れたり、不完全な修正が生じたりしやすくなりますか?
ローカル 7B/8B モデルは、ウェアハウスの参照、単純なスクリプト、ドキュメントの編成、およびローカルの変更に適しています。複数ファイルのリファクタリング、複雑なテスト修復、および長期にわたるエージェント タスクには、より高度なモデルとハードウェア要件が必要です。ローカル API に接続できるからといって、それがリスクの高い自動変更に適しているとは考えないでください。
安全に始める方法
ローカル モデルを使用して Codex を初めて実行する場合は、最初に権限を制限することをお勧めします。
|
|
まずモデルに読み取り専用タスクを完了させます。
|
|
モデルがウェアハウスを理解し、出力が安定していることを確認したら、徐々にワークスペースの書き込みとテストの実行を許可します。確認ステップを保存するために、サンドボックスなしモードまたは承認スキップ モードを直接有効にしないでください。
よくある質問
1. codex exec --oss はエラーを直接報告します
通常、ローカルプロバイダーは指定されません。使用:
|
|
または、ユーザーレベルの構成で oss_provider を設定します。
2. Codex が Ollama または LM Studio に接続できない
まずサービスを個別に確認します。
|
|
次に、サービスが開始されているかどうか、モデルがロードされているかどうか、ローカル ポートがファイアウォールや他のプロセスの影響を受けているかどうかを確認します。
3. ローカルモデルは常にコードを中断する
まずタスクを減らします。分析用に読み取り専用にし、ファイルを 1 つだけ変更し、実行する前に最初に計画を示します。また、Git ブランチまたはコミット ポイントを使用して、元に戻せる状態を保存します。モデルの能力が不十分な場合、プロンプトワードの複雑さを増やしても、通常は根本的な問題を解決できません。
4. 構成は書き込まれますが、有効になりません。
プロジェクト .codex/config.toml が誤って書き込まれていないか確認してください。プロバイダー関連のキーはユーザーレベルの ~/.codex/config.toml で書き込む必要があります。変更後にCodexを再起動してください。
要約する
ローカルの大規模モデルを Codex で使用できるようにするには、優先順位を次のようにする必要があります。
|
|
ほとんどのユーザーにとって、--oss は最も短く、最も制御しやすいエントリです。 openai_base_url は、互換性のあるゲートウェイと運用およびメンテナンス要件がすでにある高度なシナリオに適していますが、最初にユーザー レベルで構成し、インターフェイスの互換性を確認する必要があります。
参照:
- Codex OSS モードのローカル プロバイダー
- Codex 構成リファレンス
- Codex 開発者コマンド
- LM Studio OpenAI 互換インターフェースのチュートリアル
- vLLM KV キャッシュのメモリ不足のトラブルシューティング
LM Studio の OpenAI 互換ローカル API 詳細
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 を使用し続けるのが最も簡単です。
参照: