「VS Codeで補完AIを動かしたいが、コードがクラウドに送信されるリスクが怖くて踏み切れない。」
そんな悩みを抱えるエンジニアや情報システム担当者は多い。この記事では、OSSのVS Codeコーディング支援拡張「Continue.dev」とOllamaを組み合わせて、Ubuntu Server上でローカルLLMによるコード補完・チャット型コードレビューを動かす手順を解説する。コードは一切インターネットに出ない。閉域ネットワーク環境でも動作する構成だ。Continue.devのインストール・OllamaへのAPI接続設定・モデル選定・チャット活用まで一通りカバーする。
この記事のポイント
・Continue.devはconfig.jsonのprovider: "ollama"とapiBaseを設定するだけでローカルLLMに接続できる
・チャット用にLlama3.3、Tab補完用にPhi-4と役割でモデルを分けることで応答速度と品質を両立できる
・コードはすべてローカル推論で処理されるため、社内規定でSaaSのCopilotが使えない環境でも導入できる
・VS Code拡張の初回インストールだけはオンライン環境またはVSIXファイルで事前に済ませておく
でも安心してください。プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
Continue.devとOllamaを組み合わせるとできること
Continue.devは、GitHub CopilotのようなVS Code向けAIコーディング支援機能をOSSで実現する拡張機能だ。Tab補完(インライン補完)とチャットパネルによるコードレビュー・質問応答の2軸で構成されており、バックエンドのLLMを自由に差し替えられる。GitHub CopilotがMicrosoftのクラウドにコードを送信するのに対し、Continue.dev+Ollamaの組み合わせはすべての推論をローカルサーバー上で完結させる。コードが自社ネットワークの外に出ることはない。
具体的にできることは次のとおりだ。
・関数の途中でTabを押すと後続コードを自動補完する
・チャット欄に「このコードの問題点を教えて」と入力してコードレビューを依頼できる
・バグの説明、テストコード生成、コメント追記といった定型作業を日本語プロンプトで依頼できる
社内でのCopilot利用制限に悩んでいる現場、情報漏洩リスクを徹底的に排除したい金融・医療・製造業の開発環境でとくに効果的な構成だ。ライセンスコストもかからず、OSSのため継続的に無償で使い続けられる。
前提環境とモデルを準備する
1. 稼働中のOllamaを確認する
この手順を始める前に、Ubuntu Server上でOllamaが動作していることを確認する。Ollamaの導入手順は「Ubuntu ServerでローカルLLMを構築する方法」で詳しく解説している。# Ollamaサービスが稼働中かどうかを確認する $ systemctl is-active ollama active # Ollama APIが応答するかcurlで確認する $ curl http://localhost:11434/api/tags {"models":[{"name":"llama3.3:70b-instruct-q4_0",...}]}
# オーバーライドファイルを作成する $ sudo mkdir -p /etc/systemd/system/ollama.service.d/ $ sudo tee /etc/systemd/system/ollama.service.d/override.conf << 'EOF' [Service] Environment="OLLAMA_HOST=0.0.0.0:11434" EOF # 設定を反映してサービスを再起動する $ sudo systemctl daemon-reload $ sudo systemctl restart ollama # 外部IPでLISTENしているか確認する $ ss -tlnp | grep 11434 LISTEN 0 128 0.0.0.0:11434 0.0.0.0:*
2. コーディング支援に使うモデルをpullする
この記事ではチャット用にLlama3.3(70B量子化)、Tab補完用にPhi-4(14B量子化)を使う。補完は軽量モデルで十分なため、用途別に使い分けることで応答速度を確保する。モデルの選定基準は「チャットは精度重視・補完は速度重視」が基本だ。
# チャット用モデルをダウンロードする(約40GB・GPU 24GB以上推奨) $ ollama pull llama3.3:70b-instruct-q4_0 # Tab補完用モデルをダウンロードする(約15GB・GPU 8GB以上推奨) $ ollama pull phi4:14b-q8_0 # ダウンロード済みモデルを確認する $ ollama list NAME SIZE MODIFIED llama3.3:70b-instruct-q4_0 40 GB 2 hours ago phi4:14b-q8_0 15 GB 2 hours ago
Continue.devをVS Codeにインストールする
1. オンライン環境でVS Code拡張をインストールする
VS Codeの拡張機能パネル(Ctrl+Shift+X)で「Continue」を検索する。「Continue – Codestral, Claude, and more」が表示されたらインストールボタンを押す。インストール後、VS Codeの左サイドバーにContinueのアイコンが追加される。コマンドラインからインストールする場合は以下のように実行する。
# コマンドラインからContinue.devをインストールする $ code --install-extension Continue.continue # インストール済み拡張を確認する $ code --list-extensions | grep -i continue Continue.continue
2. 閉域(オフライン)環境でインストールする
インターネット接続のない環境では、別途オンライン環境でVSIXファイルをダウンロードして持ち込む方法を使う。Continue.devの公式GitHubリリースページからVSIXファイルを入手し、scpやUSBストレージ経由でオフライン端末に転送する。転送後に以下のコマンドでインストールする。
# 転送したVSIXファイルからオフラインインストールする $ code --install-extension continue-X.X.X.vsix # インストール完了後に拡張の有効化を確認する $ code --list-extensions | grep -i continue Continue.continue
config.jsonでOllamaに接続する設定手順
1. config.jsonの場所を開く
Continue.devの接続先設定はホームディレクトリ配下のJSONファイルで管理する。VS Code内からコマンドパレット(Ctrl+Shift+P)で「Continue: Open config.json」を実行すると直接開ける。ファイルが見当たらない場合はContinue.devを一度起動することで自動生成される。
# Linuxの場合のconfig.jsonパス $ ls -la ~/.continue/config.json -rw-r--r-- 1 user user 512 Jul 02 10:00 /home/user/.continue/config.json # ファイルの中身を確認する $ cat ~/.continue/config.json
2. モデルとOllamaエンドポイントを設定する
config.jsonを以下の形式で記述する。apiBaseにはOllamaが稼働するサーバーのIPアドレスを指定する。VS CodeとOllamaが同一マシンなら http://localhost:11434 でよい。別マシンの場合はサーバーのIPアドレスに替える。{ "models": [ { "title": "Llama3.3(チャット用)", "provider": "ollama", "model": "llama3.3:70b-instruct-q4_0", "apiBase": "http://192.168.1.100:11434" } ], "tabAutocompleteModel": { "title": "Phi-4(Tab補完用)", "provider": "ollama", "model": "phi4:14b-q8_0", "apiBase": "http://192.168.1.100:11434" } }
3. チャット用モデルとTab補完用モデルを分ける理由
チャットと補完に同じ大型モデルを割り当てると、Tab補完のたびに70BクラスのモデルがフルにVRAMを消費する。1回の補完で数十秒かかる状態になり実用に耐えない。チャットは長い文脈を理解する能力が重要なのでLlama3.3(70B)を使い、Tab補完は直後の数トークン予測で十分なのでPhi-4(14B)のような軽量モデルを充てる。この役割分担で補完レスポンスが1~3秒程度に収まる。
モデルの使い分けの考え方は「Llama3.3とPhi-4の性能・メモリ消費を比較する」でも詳しく解説している。
Tab補完(インライン補完)を動かす
1. 補完をトリガーして動作を確認する
設定完了後、Pythonファイルなど任意のソースコードを開いてコードを途中まで書く。タイプを止めると0.5秒後にグレーのゴーストテキストで補完候補が表示される。Tabキーで候補を確定し、Escキーでキャンセルする。Ollamaサーバー側でリクエストが届いているかをログで確認すると、接続が正常か確かめられる。
# Ollamaサーバー側でTab補完リクエストのログを確認する $ journalctl -u ollama -f --no-pager # 正常時のログ出力例 Jul 02 10:23:01 server ollama[1234]: llm request model=phi4:14b-q8_0 prompt_tokens=256 Jul 02 10:23:02 server ollama[1234]: llm response model=phi4:14b-q8_0 tokens=32 duration=1.4s
2. 補完速度を調整するオプション設定
補完リクエストが頻繁に発火するとOllamaサーバーの負荷が上がる。以下のtabAutocompleteOptionsで発火タイミングと投入トークン数を絞れる。{ "tabAutocompleteModel": { "title": "Phi-4(Tab補完用)", "provider": "ollama", "model": "phi4:14b-q8_0", "apiBase": "http://192.168.1.100:11434" }, "tabAutocompleteOptions": { "maxPromptTokens": 1024, "debounceDelay": 600 } }
チャット機能でコードレビュー・説明を活用する
1. チャットパネルの基本操作
サイドバーのContinueアイコンをクリックするかCtrl+L(MacはCmd+L)でチャットパネルを開く。入力欄に日本語でプロンプトを書いてEnterを押すとLlama3.3が応答を返す。チャットで使える主な用途は次のとおりだ。
・「この関数のバグを探して修正案を提案して」
・「このシェルスクリプトにコメントを追加して」
・「エラーメッセージの原因と対処法を教えて」
・「このPythonコードをbash関数に書き換えて」
コードが外部に送信されないため、機密性の高い社内ロジックや設定スクリプトも安心してチャットに貼り付けられる。情シス・セキュリティ部門から承認を得やすい点が実務上の大きなメリットだ。
2. 選択コードをチャットに引用してレビューを依頼する
VS Code上でレビューしたいコードを範囲選択してCtrl+Shift+Lを押すと、選択範囲が自動引用された状態でチャット入力欄が開く。そのままレビュー依頼を追記して送信する。社内ツールのシェルスクリプトやCRON設定など、クラウドに送れないコードのレビューを手軽に行える。現場のエンジニアに話を聞くと「コードレビューを依頼する相手がいないとき、ローカルLLMに投げると意外と使えるフィードバックが返ってくる」という声が多い。
社内でのAI利用ガイドラインの整備状況によって導入判断が変わる現場も多い。その背景については「社内でChatGPTが使えないときの代替手段」が参考になる。
接続できない・動かないときのトラブル対処
「Connection refused」または「timeout」が出るとき最も多い原因はOllamaのLISTENアドレスだ。デフォルトの127.0.0.1は同一マシン以外からアクセスできない。別マシンからVS Codeで接続する場合は前述のOLLAMA_HOST=0.0.0.0:11434の設定を見直す。
ファイアウォールで11434番ポートが閉じている場合も同様のエラーが出る。以下で確認・開放する。
# UFWで社内セグメントからのみ11434ポートを許可する $ sudo ufw allow from 192.168.1.0/24 to any port 11434 # ポートのLISTEN状態を確認する $ ss -tlnp | grep 11434 LISTEN 0 128 0.0.0.0:11434 0.0.0.0:* # curlでconfig.jsonのapiBaseに指定したURLを直接叩いて疎通確認する $ curl http://192.168.1.100:11434/api/tags {"models":[...]}
config.jsonのモデル名はOllamaにpull済みのモデル名と完全一致が必要だ。大文字・小文字・量子化サフィックスを含めて正確に記述する。ollama listで名前を確認してからconfig.jsonに貼り付けると確実だ。
量子化サフィックスはphi4:14b-q8_0のように-q8_0形式で付けること。:q8_0単独の記述はOllamaでは無効なので注意が必要だ。 Tab補完の応答が極端に遅い場合
tabAutocompleteModelに70Bクラスの大型モデルを設定していると補完のたびに数十秒かかる。tabAutocompleteModelには必ず7B~14Bクラスの軽量モデルを指定すること。
Phi-4(14B)でもGPUメモリ8GB以上のサーバーがあれば1~3秒程度に収まる。CPU推論のみの環境では30秒以上かかる場合があり、Tab補完の実用はGPU環境を前提とした方がよい。
本記事のまとめ
Continue.devとOllamaを組み合わせることで、VS Codeのコーディング支援AIを完全社内クローズで運用できる環境が手に入る。設定の核心はconfig.json1枚の編集のみで、ハードルは低い。チャット用に大型モデル・補完用に軽量モデルを分ける設計が実用性のカギになる。| 手順 | コマンド/設定 | ポイント |
|---|---|---|
| チャット用モデル取得 | ollama pull llama3.3:70b-instruct-q4_0 | 大型・高品質・GPU 24GB以上推奨 |
| 補完用モデル取得 | ollama pull phi4:14b-q8_0 | 軽量・高速・GPU 8GB以上推奨 |
| 外部接続許可 | OLLAMA_HOST=0.0.0.0:11434 | VS Codeと別マシンの場合のみ必要 |
| 接続設定ファイル | ~/.continue/config.json | provider: "ollama" と apiBase を設定 |
| Tab補完確定 | Tabキー(キャンセルはEscキー) | 候補表示後に押す |
| チャット起動 | Ctrl+L | 選択コードは Ctrl+Shift+L で引用 |
| 補完速度調整 | tabAutocompleteOptions.debounceDelay | 600~800ms推奨でサーバー負荷を抑える |
ローカルLLMによるコーディング支援を2日間のハンズオンで体験する
Continue.devとOllamaの組み合わせは、手を動かして補完やレビューを試すことで実感がつかめる構成だ。実機GPU環境で手を動かしながら習得したい方向けに、「ローカルAIマスターセミナー」を開催しています。
少人数(最大8名)ZOOMハンズオン形式で実施しています。
・Ubuntu ServerでローカルLLMを構築する方法|Ollamaで機密データを外に出さず業務AIを動かす完全ガイド
・社内でChatGPTが使えないときの代替手段|機密データを守るローカルLLMという選択肢
・ローカルLLMのモデルを比較する方法|Llama3.3・Mistral・Gemma・Phi-4をUbuntuで使い分けるポイント
3,100名以上が実践した「型」を無料で公開中
プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
その「型」を図解60Pにまとめた入門マニュアルを、完全無料でプレゼントしています。
登録10秒/合わなければ解除3秒 / 詳細はこちら
- 次のページへ:OllamaでマルチモーダルLLMを使う方法|LLaVA・Moondreamで画像をローカル解析する手順
- 前のページへ:OllamaのパフォーマンスをチューニングするLinux設定ガイド|環境変数・並列処理・VRAM管理でチームサーバーを最適化する
- この記事の属するカテゴリ:ローカルLLMへ戻る

無料メルマガで学習を続ける
Linuxの実践スキルをメールで毎週お届け。
登録は1分、解除もいつでも可。
登録無料・いつでも解除できます