Tech Racho エンジニアの「?」を「!」に。
  • Ruby / Rails以外の開発一般

VSCode(Codex)からローカルLLM(Ollama)に接続して動かしてみた話

開発PCのVSCode(Codex)からローカルLLM(Ollama)が動作する別PCに接続して、コーディング支援してもらえるように環境構築できたのでその手順をご紹介したいと思います。

Ollama PCのセットアップ

ローカルLLM PCでOllamaのインストールをしておきます。

使用するモデルはこちらgpt-oss:120b を使用します。
以下のコマンドでモデルのダウンロードを行います。

ollama pull gpt-oss:120b

必要あればかステムモデルの作成も検討します。

▶手元のカスタムモデルについて(クリックで展開)

Modelfile を作成

gpt-oss:120bの初期コンテキスト長では少ないため80000にするModelfile を以下の内容で作成しています。
(フォルダはC:\Users\y-kuki\ollama_models\gpt-oss-120bに作成しています。)

# Modelfile
FROM gpt-oss:120b
PARAMETER num_ctx 80000

※ modelfile については こちらを参照してください。

カスタムモデルの作成

以下のコマンドでカスタムモデルを作成しています。

  • ollama create gpt-oss-120b-ctx80k -f C:\Users\y-kuki\ollama_models\gpt-oss-120b\Modelfile

カスタムモデルの確認

ollama ls でカスタムモデルが作成されているか確認します。

PS C:\Users\y-kuki> ollama ls
NAME                          ID              SIZE      MODIFIED
gpt-oss-120b-ctx80k:latest    afb6ccf3b891    65 GB     1 hours ago

実際に起動するとコンテキスト長が変更されていることが確認できます。

PS C:\Users\y-kuki> ollama ps
NAME                          ID              SIZE     PROCESSOR    CONTEXT    UNTIL
gpt-oss-120b-ctx80k:latest    afb6ccf3b891    68 GB    100% GPU     80000      Forever

※ 場合によってはVSCodeから接続できるようにファイアウォールの設定など別途行う必要があるかもしれません。

VS Code PCのセットアップ

拡張機能のインストール

VS Codeの拡張機能: Codex – OpenAI’s coding agent をインストールする

拡張機能の設定

初期表示ではログインするか API Key を入力するかの画面が表示されます。(この画面からOllamaに接続する設定を行えないため一旦無視します。)

公式サイトのConfiguring Codexを見ると IDE拡張でも使用できる記載があるためこれを使って拡張の設定を進めます。

自分の環境では WSL2(Ubuntu 22.04)に Railsアプリケーションのファイルを配置してVS Codeからアクセスしているため、下記のパスにファイルを格納しています。
- 格納先:~/.codex/config.toml (Codex CLIでも参照してる config.toml の格納先です。)

profile = "gptoss-local"
model = "gpt-oss:120b"

[model_providers.Ollama]
name = "Ollama"
base_url = "http://192.168.10.182:11434/v1" # 別PCのIPアドレスを調べて書き換え

[profiles.gptoss-local]
model_provider = "Ollama"

ファイルを作成するところまでできれば、VSCodeを再起動します。

(参考)公式サイトのAdvanced configurationにOllamaに接続するサンプル等色々な例が掲載されています。

動かしてみる

実際に問い合わせてみる
下の Ask for follow-up changes に問い合わせたい内容を入力して Enterする。

gpt-oss-120b モデルは、単一の80GB GPU で効率的に稼働しながら、コア推論ベンチマークで OpenAI o4-mini とほぼ同等の結果を達成します。

回答内容は正しそうなのでOllamaに接続できてそうですね。

Rubyの簡単なプログラムを作ってもらう

1分もかからないぐらいで作ってくれました。
簡単なプログラムなので時間がかかっていませんが実際に大きなシステムで動かすと時間がかかりそうな気がします。

▶作成してもらったファイル(クリックで展開)
  • fizzbuzz.rb
# frozen_string_literal: true

# FizzBuzz のロジックを提供するモジュール。
module FizzBuzz
  # 与えられた整数 n に対し、以下の文字列を返す。
  #   n が 3 の倍数 && 5 の倍数 -> "FizzBuzz"
  #   n が 3 の倍数            -> "Fizz"
  #   n が 5 の倍数            -> "Buzz"
  #   それ以外                -> n.to_s
  def self.call(n)
    case
    when (n % 15).zero?
      'FizzBuzz'
    when (n % 3).zero?
      'Fizz'
    when (n % 5).zero?
      'Buzz'
    else
      n.to_s
    end
  end
end
  • test_fizzbuzz.rb
require 'minitest/autorun'
require_relative './fizzbuzz'

# FizzBuzz の動作を検証するテストケース。
class FizzBuzzTest < Minitest::Test
  def test_fizz
    assert_equal 'Fizz', FizzBuzz.call(3)
    assert_equal 'Fizz', FizzBuzz.call(6)
  end

  def test_buzz
    assert_equal 'Buzz', FizzBuzz.call(5)
    assert_equal 'Buzz', FizzBuzz.call(10)
  end

  def test_fizzbuzz
    assert_equal 'FizzBuzz', FizzBuzz.call(15)
    assert_equal 'FizzBuzz', FizzBuzz.call(30)
  end

  def test_number
    assert_equal '1', FizzBuzz.call(1)
    assert_equal '2', FizzBuzz.call(2)
    assert_equal '4', FizzBuzz.call(4)
  end
end

最後に

実際にVSCodeのCodexからOllamaに接続して動かすことができました。
問題なさそうな回答が返ってきたので今回はここまでにしたいと思います。

VSCodeのCodexを初めて開いたときに ChatGPTへのログインか APIキーの設定しかできなさそうなのを見て焦りましたが、 config.toml で Ollamaへの接続設定ができて良かったです。

config.tomlを設定していれば、Codex CLIからOllamaにも接続することができました。

ちなみに 下記のように 全て小文字で ollama と書くと ずっと localhost にアクセスしようとするので焦りました 😇

profile = "gptoss-local"
model = "gpt-oss:120b"

[model_providers.ollama]
name = "ollama"
base_url = "http://192.168.10.182:11434/v1"

[profiles.gptoss-local]
model_provider = "ollama"

実際に使って確認していく予定でしたが会社から GPT5を使えるようにしてもらったのでこちらを使ってコーディング支援をしてもらっています。
VSCodeのCodexをローカルLLMで動かしてみたい人は試してみてはいかがでしょうか

関連記事

Windows環境でLMStudio(gpt-oss-20b)を動かしてみた話


BPSアドベントカレンダー2025


CONTACT

TechRachoでは、パートナーシップをご検討いただける方からの
ご連絡をお待ちしております。ぜひお気軽にご意見・ご相談ください。