Ollama を使用してローカルLLMでAI支援コード補完を提供するVS Code拡張機能です。
- インラインコード補完: タイピング中にリアルタイムでコード提案を表示
- ローカル実行: Ollamaを使用して完全にローカルマシン上で動作
- カスタマイズ可能: モデル、APIエンドポイント、生成パラメータを設定可能
- プライバシー重視: コードが外部に送信されることはありません
この拡張機能を使用する前に、Ollamaをインストールして起動する必要があります:
-
Ollamaのインストール: ollama.ai からダウンロードしてインストール
-
モデルのダウンロード: コード補完用のモデルを取得
ollama pull llama3.2:1b
-
Ollamaサーバーの起動: Ollamaが実行されていることを確認
ollama serve
この拡張機能をローカル環境で試すには:
-
リポジトリのクローン
git clone <repository-url> cd local-llm-code-completion
-
依存関係のインストール
pnpm install # または npm install -
Ollamaの起動(まだ起動していない場合)
ollama serve
-
VS Codeで開く
code . -
拡張機能の実行
F5キーを押すと、拡張機能が読み込まれた新しいVS Codeウィンドウが開きます- 拡張機能は起動時に自動的にアクティベートされます
-
補完のテスト
- 任意のコードファイル(TypeScript、JavaScript、Pythonなど)を開きます
- コードを入力して約300ms待ちます
- インライン補完の提案が表示されます
この拡張機能は以下の設定項目を提供します:
localLlmCodeCompletion.apiUrl: Ollama APIエンドポイント- デフォルト:
http://localhost:11434/v1/chat/completions
- デフォルト:
localLlmCodeCompletion.model: 補完に使用するモデル名- デフォルト:
llama3.2:1b
- デフォルト:
localLlmCodeCompletion.maxTokens: 補完の最大トークン数- デフォルト:
96
- デフォルト:
localLlmCodeCompletion.temperature: サンプリング温度(0 = 確定的)- デフォルト:
0.2
- デフォルト:
- 拡張機能がカーソル位置を監視し、周辺のコードコンテキストを取得
- タイピングが停止すると、Fill-in-the-Middle (FIM) 形式のプロンプトをOllamaに送信
- LLMがprefixとsuffixのコンテキストに基づいて補完を生成
- 提案がインラインコンプリーションテキストとして表示(GitHub Copilot風)
Tabキーで提案を受け入れ、または入力を続けて無視
pnpm run compile: 拡張機能のビルドpnpm run watch: 開発用ウォッチモードpnpm run lint: ESLintの実行pnpm run format: Prettierでコードフォーマットpnpm run test: テストの実行
- 補完の品質は使用するモデルに依存します
- より大きなモデルはより良い結果を提供しますが、遅くなる可能性があります
- 過剰なAPI呼び出しを避けるため、300msのデバウンスを使用しています
初期開発リリース:
- 基本的なインライン補完機能
- Ollama API統合
- モデルとパラメータの設定可能化
- デバウンスと重複検出機能