コードリポジトリのインデックス
コードベースインデックスは、AI埋め込み技術を活用してプロジェクト全体のセマンティックコード検索を実現します。正確なテキストマッチングによる検索ではなく、クエリの意味を理解することで、特定の関数名やファイルパスを知らなくても、VJSPが関連するコードを発見できるよう支援します。

機能
本機能を有効化すると、インデックスシステムは以下の処理を実行します。
- Tree-sitterによるコード解析:関数・クラス・メソッドといったセマンティックブロックを識別
- AIモデルによる埋め込み生成:各コードブロックのベクトル埋め込みを作成
- Qdrantデータベースへのベクトル保存:高速な類似度検索を実現
codebase_searchツールの提供:VJSPにcodebase_searchツールを提供し、インテリジェントなコード発見を可能に
これにより、「ユーザー認証ロジック」「データベース接続処理」といった自然言語クエリで、プロジェクト全体から関連コードを検索できます。
主なメリット
- セマンティック検索:キーワードだけでなく、意味に基づいてコードを検索
- AIのコード理解強化:VJSPがコードベースをより深く理解・活用
- クロスプロジェクト検索:開いているファイルだけでなく、全ファイルを対象に検索
- パターン認識:類似した実装やコードパターンを発見
Qdrantベクトルデータベースの設定
Qdrantは埋め込みベクトルの保存・検索を担うコアツールで、以下の2つの設定方式をサポートします。
方式1:ローカルベクトルデータベース
- デフォルトアドレス:
http://localhost:6333 - 認証設定:APIキーの設定に対応。セキュアなデプロイメントには任意で設定可能
方式2:VJSP公式サイトから専用ベクトルデータベースを申請
- 専用アドレス:VJSP公式サイトコンソール - APIキーから専用URLを取得
- 認証設定:公式サイトで申請した専用APIキーが必須
ⓘ APIキー申請の説明
Qdrantの専用URLとAPIキーは、VJSP公式サイトコンソールから申請が必要です。申請完了後、取得した情報を「コードベースインデックス」の対応設定項目に貼り付けてください。詳細な取得方法は対応ヘルプドキュメントを参照してください。
設定手順
- VJSPダイアログ右下のインデックス準備完了アイコンを開く
- トグルスイッチで「コードベースインデックスを有効化」をオンにする
- 埋め込みプロバイダーを設定する
- QdrantのURLと任意でAPIキーを設定する
- 最大検索結果数を設定する(デフォルト:50、範囲:1~100)
- 保存ボタンをクリックし、初期インデックス作成を開始
有効化/無効化トグル
コードベースインデックス機能には、便利なトグルスイッチが搭載されており、以下の操作が可能です。
- 有効化:コードベースのインデックス作成を開始し、検索ツールを使用可能にする
- 無効化:インデックス作成を停止し、ファイル監視を一時中断して検索機能を無効にする
- 設定の保持:機能をオフにしても設定内容は保存される
本トグルは、集中的な開発作業中や機密性の高いコードベースを扱う際に、インデックス作成を一時的に停止する場合に便利です。
インデックスステータスの確認方法
インターフェースには、カラーインジケーター付きのリアルタイムステータスが表示されます。
- 待機中(グレー):実行されていない、設定待ちの状態
- インデックス作成中(イエロー):現在ファイルを処理している状態
- インデックス作成完了(グリーン):最新状態で検索可能な状態
- エラー(レッド):失敗状態、対処が必要
ファイル処理方式
インテリジェントコード解析
- Tree-sitter統合:AST解析を利用してセマンティックコードブロックを識別
- 言語サポート:Tree-sitterがサポートするすべてのプログラミング言語に対応
- Markdownサポート:Markdownファイルとドキュメントを完全にサポート
- フォールバック処理:サポート外のファイル形式に対しては、行単位でのチャンク分割を実行
- チャンクサイズ
- 最小:100文字
- 最大:1,000文字
- 大規模関数の場合はインテリジェントに分割
自動ファイルフィルタリング
インデクサーは以下のファイルを自動的に除外します。
- バイナリファイルおよび画像ファイル
- 大きなファイル(>1MB)
- Gitリポジトリ(
.gitフォルダ) - 依存関係フォルダ(
node_modules、vendorなど) .gitignoreおよび.vjspのパターンに一致するファイル
インクリメンタル更新
- ファイル監視:ワークスペース内の変更を監視
- インテリジェント更新:変更されたファイルのみを再処理
- ハッシュベースのキャッシュ:変更のないコンテンツの再処理を回避
- ブランチ切り替え対応:Gitブランチの切り替えを自動的に処理
現在の制限事項
- ファイルサイズ:1ファイルあたり最大1MB
- シングルワークスペース:同時に1つのワークスペースのみ対応
- 外部依存:外部サービス(埋め込みプロバイダー + Qdrant)が必要
- 言語カバレッジ:最適な解析を行える言語はTree-sitterがサポートするものに限定
検索機能の使用方法
インデックス作成完了後、VJSPはcodebase_searchツールを使用して関連コードを検索できます。
クエリの例
- 「ユーザー認証はどのように処理されているか?」
- 「データベース接続設定」
- 「エラー処理パターン」
- 「APIエンドポイントの定義」
本ツールはVJSPに対して以下の情報を提供します。
- 関連するコードスニペット(設定した最大検索結果数まで)
- ファイルパスと行番号
- 類似度スコア
- コンテキスト情報
検索結果の設定
最大検索結果数の設定を調整することで、返却される検索結果の件数を制御できます。
- デフォルト:50件
- 設定範囲:10~200件
- パフォーマンス:値を小さくするとレスポンス速度が向上
- 網羅性:値を大きくするとより多くのコンテキストが得られるが、レスポンスが遅くなる可能性がある
プライバシーとセキュリティ
- コードのローカル保持:埋め込み生成のために送信されるのは、少量のコードスニペットのみ
- 埋め込みの性質:数値データであり、人間が読み取り可能な形式ではない
- セキュアなストレージ:APIキーはVS CodeおよびIDEAのストレージ内で暗号化されて保存
- アクセス制御:既存のファイルアクセス権限を尊重
