金融機関、ヘルスケア、防衛産業、機密性の高いエンタープライズソフトウェアの開発現場では、独自のソースコードや知的財産を外部に漏洩させないことが絶対条件です。多くの組織が「コードの外部送信禁止」や厳格なコンプライアンス監査規則を策定しており、社内リポジトリのコンテキスト、業務アルゴリズム、データベース設計をクラウド型SaaSのAIサービスに送信することを禁止しています。その一方で、日々の開発業務においてAIアシスタントがもたらす生産性向上の恩恵を放棄することは困難です。
このセキュリティと開発効率のジレンマを完全に解消する手法が、Visual Studio Code拡張機能の CodeGPT と、ローカルLLM実行ランタイムである Ollama の連携です。CodeGPTがエディタ内のチャット、リファクタリング、インライン補完(Autocomplete)のUI層を担い、Ollamaがローカルマシン上のループバックアドレス(http://localhost:11434)経由でオープンウェイトモデルの推論を実行します。すべてのトークン生成とコード解析がローカルハードウェア内で完結し、外部ネットワークへのデータ流出をゼロに抑えることができます。
アーキテクチャ比較:クラウド型AIとローカルOllama推論
クラウド型AIアシスタントとCodeGPT+Ollamaの連携構成におけるアーキテクチャの違いを理解することで、組織のセキュリティチームに対する説明責任を果たしやすくなります。
| 評価項目 | クラウド型AI(Copilot、SaaS APIなど) | CodeGPT + Ollama(ローカルLLM) |
|---|---|---|
| データ通信経路 | コード断片やプロンプトをHTTPSで外部クラウドへ送信 | 外部送信ゼロ。すべてループバック(127.0.0.1)内で完結 |
| モデル稼働場所 | クラウドベンダーのマルチテナント基盤 | 開発者ローカルPCまたは社内隔離GPUサーバー |
| ネットワーク依存 | 常時インターネット接続が必須 | 完全オフライン(エアギャップ環境)で動作可能 |
| コンプライアンス | データ処理規約(DPA)締結や外部監査対応が必要 | 社内規定・機密保護ポリシーに完全に適合 |
| ハードウェア負荷 | ローカル端末の計算負荷は極めて軽微 | 推論用に十分なRAM/VRAMが必要 |
| コスト構造 | 月額サブスクリプションまたは従量課金 | オープンソースモデルは無料。費用は端末スペック依存 |
CodeGPTの接続先をOllamaに設定すると、拡張機能はローカルのOllamaサービスに対して直接JSONリクエストを発行します。OllamaがローカルのGPU VRAMまたはシステムメモリに展開されたモデルを展開・推論し、エディタ側にストリーミングで応答を返します。この仕組みにより、物理的にコードが外部へ送信される経路が存在しません。
コーディングモデルの選定とハードウェア要件
モデルのパラメータ規模は、推論速度とコード生成の品質に直結します。開発端末のハードウェアスペックに応じて最適なモデルを選定します。
- Qwen2.5-Coder(7B / 14B):多言語プログラミングにおいて非常に高い精度を誇り、複雑なリファクタリングやユニットテストの生成に適しています。7B版は16 GBの統合メモリまたは8 GBのVRAMを搭載したマシンで快適に動作します。
- DeepSeek-Coder(6.7B / 1.3B):アルゴリズムの推論やコードベースの理解に優れ、ミドルクラスのノートPCでも安定して動作します。
- Codestral(22B):Mistral社が提供するコード特化型大規模モデル。長大なコンテキストに対応し、24 GB以上のVRAMを積んだワークステーションや32 GB以上の統合メモリを持つMacに最適です。
- Qwen2.5-Coder(1.5B / 3B):推論レイテンシが極めて低く、キーストロークに即座に応答するインラインのゴーストテキスト補完に最適です。
ステップ1:Ollamaの導入とコーディングモデルの取得
OSに応じた手順でOllamaをインストールします。
- macOS / Linux:公式インストールスクリプトまたはパッケージマネージャーを使用して導入します。
- Windows:公式サイト(
ollama.com)からインストーラーを入手し、バックグラウンドサービスとして実行します。
インストール後、ターミナルでOllamaの動作を確認します。
ollama --version
次に、ollama pull コマンドで対象のコードモデルをダウンロードします(このコマンドは対話モードを起動せず、重みファイルのみをローカルに取得します)。
# バランスに優れた7Bモデルを取得
ollama pull qwen2.5-coder:7b
# (推奨)インライン補完用に軽量な1.5Bモデルを取得
ollama pull qwen2.5-coder:1.5b
ダウンロードされたモデル一覧を確認します。
ollama list
ステップ2:Modelfileによるコンテキスト長の拡張とパラメータ調整
ソースコードの解析では、インポート文、型定義、周辺の関数定義など、広範なコンテキストが必要です。Ollamaのデフォルト設定では、メモリ消費を抑えるためにコンテキスト長が2,048〜4,096トークン程度に制限されている場合があります。
実用的なコーディング支援環境を整えるため、カスタム Modelfile を用いてコンテキストウィンドウを8,192または16,384トークンに拡張します。
- 作業ディレクトリに拡張子のない
Modelfileという名前のファイルを作成します。
FROM qwen2.5-coder:7b
# コンテキストウィンドウを8192トークンに設定
PARAMETER num_ctx 8192
# 生成コードの正確性を保つため温度パラメータを低めに設定
PARAMETER temperature 0.2
# サンプリング閾値の設定
PARAMETER top_p 0.95
- ターミナルでカスタムモデルをビルドします。
ollama create my-local-coder -f ./Modelfile
なお、Ollamaサービス起動時に環境変数 OLLAMA_CONTEXT_LENGTH=8192 を付与する方法でもコンテキスト長を指定できます。コンテキスト長を拡大すると、KVキャッシュが消費するVRAM・RAM容量が増加する点に留意してください。
ステップ3:VS CodeでのCodeGPTの導入とローカル接続設定
- Visual Studio Codeを起動します。
- 拡張機能マーケットプレイス(
Ctrl+Shift+X、macOSではCmd+Shift+X)を開きます。 - CodeGPT(識別子:
DanielSanMedium.dscodegpt)を検索し、インストールをクリックします。 - サイドバーのCodeGPTアイコンをクリック(または
Ctrl+Shift+PからCodeGPT: Focus on Chat Viewを実行)してパネルを展開します。 - パネル上部のモデル設定(歯車アイコンまたは Manage my AI Models)を開きます。
- モデル分類タブで Local LLMs を選択します。
- Provider のプルダウンから Ollama を選択します。
- Server URL に以下のローカルエンドポイントを入力(または確認)します。
http://localhost:11434
(社内LAN内の共有GPUサーバー上でOllamaを稼働させている場合は、その内部IPアドレス(例: http://192.168.1.100:11434)を指定します)。
- Model のプルダウンリストから、先ほど取得したモデル(
qwen2.5-coder:7bまたはmy-local-coder)を選択します。 - 入力欄の外側をクリックして保存します。CodeGPTがOllamaのローカルAPIと正常にハンドシェイクを行います。
ステップ4:チャット支援とインライン補完の有効化
CodeGPTでは、サイドバーでの対話型アシスタントと、エディタ上でのリアルタイム補完の両方を利用できます。
対話型コードリファクタリングと技術相談
エディタ上でコード範囲を選択し、右クリックメニューまたはCodeGPTパネルから以下を実行できます。
- 関数やクラスに対する自動ユニットテストの生成。
- レガシーコードの処理フロー解説やリファクタリング提案。
- ビルドエラーや例外スタックトレースの原因究明。
インライン自動補完(Autocomplete)の設定
- CodeGPTサイドバー内のメニューから Autocomplete を選択します。
- ステータスを ON に切り替えます。
- 補完用モデルに軽量モデル(
qwen2.5-coder:1.5bなど)を割り当てることで、タイピング中にミリ秒単位の高速な候補表示が可能になります。 - 端末の処理速度に合わせて Suggestion Delay(候補表示遅延)や Max Tokens を微調整します。
ステップ5:セキュリティ監査対応と完全オフライン検証
厳格な監査を受ける企業環境では、以下の手順でシステムが完全に外部遮断されていることを検証します。
1. VS Code本体のテレメトリ無効化
エディタ本体が使用状況データを外部へ送信しないよう設定します。
- VS Codeの設定画面(
Ctrl+,またはCmd+,)を開きます。 telemetry.telemetryLevelを検索します。- 値を
offに変更します。
2. ループバックアドレスの固定
Ollamaはデフォルトで 127.0.0.1:11434 にのみバインドされます。スタンドアロン開発環境では、不用意に OLLAMA_HOST=0.0.0.0 を設定しないように徹底し、同一LAN内の他端末からの不正接続を防ぎます。
3. オフライン動作検証(エアギャップテスト)
- PCのWi-Fiをオフにし、有線LANケーブルを抜く(またはOSのファイアウォールで外部送信を全面遮断する)。
- VS Code上でコードファイルを開きます。
- CodeGPTに対してコードのリファクタリングを指示し、同時にコードを打ち込んでインライン補完をトリガーします。
- ネットワーク未接続状態でも正常に応答が返ることを確認します。これにより、外部API依存が完全に存在しないことが実証されます。
トラブルシューティングと最適化
- 接続エラー(Connection Refused):Ollamaのバックグラウンドプロセスが起動しているか確認してください。Windows/macOSではタスクトレイの常駐アイコンを確認し、Linuxでは
curl http://localhost:11434を実行して応答を確かめます。 - CORS制限エラー:VS CodeのWebviewコンポーネントがクロスオリジンで拒否される場合は、環境変数
OLLAMA_ORIGINS="*"を設定した上でOllamaを再起動します。 - 推論速度の極端な低下:VRAM容量に対してモデルサイズが大きすぎると、レイヤーがCPUメモリにオフロードされ、生成速度が著しく低下します。パラメータ数の小さいモデル(14Bから7Bへ、または7Bから1.5B/3Bへ)に変更するか、Modelfileの
num_ctxを小さく設定してください。