オレンジ色のケーブルが接続されたパッチパネル
現場の実践

opencodexとは何か エンタープライズでOpenAI以外のLLMを混在運用する方法

目次を見る

社内で ChatGPT Desktop(OpenAIが提供するデスクトップ版のチャットアプリ)を業務利用しているが、モデルの選択肢がOpenAI製品に限られて困っている、という声を聞くことがあります。とくにコスト管理やデータの持ち出しポリシーの観点で、社内サーバーに置いたローカルLLM(自社内のマシンで動かす大規模言語モデル)も使いたい、という要望は珍しくありません。

この記事では、そうした要望に対応する手段のひとつとして知られる opencodex というオープンソースツールの仕組みを、業務システムへの組み込みという視点で整理します。目新しい機能紹介ではなく、既存の開発環境にどう影響するかを中心に見ていきます。

opencodexは何をするツールか

opencodexは、MITライセンス(改変・商用利用ともに制限が緩い代表的なオープンソースライセンス)で公開されているプロキシ(通信を中継するソフトウェア)です。

ChatGPT Desktopアプリや、OpenAIのコマンドラインツールであるCodexは、内部的にOpenAIのResponses API(対話やタスク実行のためのAPI仕様)にリクエストを送っています。opencodexは、そのリクエストの送信先を自分自身(ローカルの127.0.0.1)に差し替えることで、通信を横取りします。

アプリ本体を改造するのではなく、あくまで通信経路の途中に割り込む構造です。アプリ側は「OpenAIのサーバーと話している」と思い込んだまま動作します。

実際には、設定ファイル ~/.codex/config.toml に以下の2行が自動で追記されます。

# Auto-injected by opencodex
openai_base_url = "http://127.0.0.1:10100/v1"
experimental_realtime_ws_base_url = "http://127.0.0.1:10100/v1"

この base_url(APIの接続先を指定する設定値)の書き換えだけで、以降のすべてのリクエストがローカルのプロキシを経由するようになります。

なぜforkではなくproxy方式なのか

この設計判断は、業務システムの保守運用を考える上で参考になる点です。

もしCodexをフォーク(ソースコードを複製して独自改変すること)していたら、OpenAI側がCodexをアップデートするたびに、差分を追いかけて手動で当て直す作業が発生します。バージョン追従コストが継続的にかかる構造です。

一方でproxy方式は、アプリ本体には一切手を入れません。base_urlという設定値の書き換えだけで機能するため、Codexの内部実装が変わってもプロキシとの通信仕様(OpenAI互換API形式)さえ維持されれば動き続けます。

これは、社内システムでAPIゲートウェイ(複数のバックエンドAPIへのアクセスを一箇所に集約する中継サーバー)を挟んで外部サービス連携を吸収する設計と似た考え方です。呼び出し元のコードを変えずに、裏側の接続先だけを切り替えられる構成は、エンタープライズのAPI連携でもよく採用される手法です。ベンダーロックインを避けたいときの定石のひとつと言えます。

対応しているバックエンドと運用面の機能

opencodexは、ローカルで動くOllama、vLLM、LM Studioという3つの代表的なLLM実行環境に標準対応しています。加えて、OpenAI互換APIやAnthropic Messages API(Anthropic社のClaudeが使う対話API仕様)を話すサービスであれば、公式README上は40以上のプロバイダーに対応するとされています。DeepSeek、Groq、OpenRouter、Azure OpenAI、Google Geminiなどが例として挙げられています。

業務利用の観点で見ておきたいのは、単なる接続先の切り替えだけでなく、運用のための管理画面が用意されている点です。ocx start でプロキシを起動すると、http://localhost:10100 にダッシュボードが立ち上がります。

ここでは、モデルごとのトークン使用量、API呼び出し回数、推定コストが確認できます。複数モデルを併用する検証フェーズでは、どのモデルにどれだけコストがかかっているかを可視化できる点は実務上ありがたい機能です。

さらに、ChatGPTやCodexのアカウントを複数登録しておき、5時間・週次・30日の利用枠を監視する機能もあります。枠が残り少なくなると、新規セッションは別アカウントに自動で振り分けられる仕組みです。既存のスレッドは元のアカウントに固定されたまま維持されます。

既存の開発フローへの影響と確認ポイント

社内でChatGPT DesktopやCodex CLIを開発フローに組み込んでいる場合、opencodexの導入を検討する前に確認すべき点がいくつかあります。

まず、Node.js 18以上が動く環境かどうかです。インストールコマンドは以下の2つで完結します。

npm install -g @bitkyc08/opencodex
ocx start

インストール時にBunランタイム(Node.jsより高速とされるJavaScriptの実行環境)が自動的に同梱されるため、別途セットアップする必要はないとされています。設定を対話形式で進めたい場合は ocx init を使うと、利用したいプロバイダーを選びながらconfig.tomlの書き換えまで自動化してくれます。

次に確認すべきは、~/.codex/config.toml の内容です。opencodexを導入すると自動的に書き換わるため、既に何らかのカスタム設定(社内プロキシ経由の設定など)を入れている場合は、上書きされないか事前にバックアップを取っておくのが安全です。

セキュリティ面では、プロキシがlocalhostの10100番ポートで待ち受ける構成である点も押さえておきたいところです。社内ネットワークで複数マシンから利用する構成を組む場合、ポートの外部公開範囲やアクセス制御をどう設計するかは、導入前に情報システム部門と擦り合わせておく価値があります。

導入前に確認しておきたいこと

opencodexは、ChatGPT DesktopやCodexの通信経路をローカルプロキシ経由に差し替えることで、OpenAI以外のモデルを同じUIから使えるようにする仕組みです。

社内での適用を検討する場合、次の点を順に確認しておくと判断しやすくなります。

  • 開発チームがCodex CLIやChatGPT Desktopをどこまで業務フローに組み込んでいるか
  • ~/.codex/config.toml に既存のカスタム設定が入っていないか(上書きリスクの確認)
  • ローカルLLM(Ollama・vLLM・LM Studioなど)を社内で既に運用しているか、これから検証したいか
  • 複数モデル・複数アカウントを使う場合、コスト可視化のためのダッシュボード運用を誰が見るか

opencodexは公式ドキュメント(opencodex.me)にコマンド一覧や設定項目がまとまっているので、導入前に一通り目を通しておくと、想定外の設定上書きを避けやすくなります。フォークではなくプロキシという設計自体が、既存ツールの保守負荷を抑えたい場面で応用の効くアイデアなので、社内の他のAPI連携設計を見直す際の参考にもなりそうです。

参考

รัน local LLM ในแอป ChatGPT Desktop ด้วย opencodex ตัวเดียว

この記事について: 本記事は AI を活用して作成し、forva AI 編集部が内容を確認・監修しています。

AI 駆動開発のご相談は forva AI へ。まずはお気軽にどうぞ。