先日、IBMのAIコーディングアシスタント watsonx Code Assistant
は、RAG(Retrieval-Augmented Generation)機能に対応しました。
RAG機能によって、単なるコード補完ツールから、プロジェクト固有の文脈を深く理解する開発パートナーへと進化します。
本記事では、ベクトルデータベースとして Milvus を利用し、watsonx Code Assistant
のRAG機能を最大限に活用するための具体的な設定手順を解説します。
RAG(Retrieval-Augmented Generation)とは?
RAG(Retrieval-Augmented Generation:検索拡張生成)とは、大規模言語モデル(LLM)に対して、プロンプトと共に追加のコンテキスト情報を提供することで、その出力品質を最適化する技術です。
watsonx Code Assistant
でRAGを有効にすると、ユーザーが質問を投げかけた際に、指定されたコードベースやドキュメントから関連情報を検索します。そして、その検索結果を元の質問に付加してLLMに渡すことで、以下のようなメリットが得られます。
- ハルシネーション(もっともらしい嘘の出力)の削減
- 最新かつ固有のコンテキストに基づいた回答精度の向上
前提条件と準備
RAG機能を利用するには、いくつかの準備が必要です。
-
プランとツール:
-
watsonx Code Assistant Standard
プランの契約が必要です。 - 開発環境として Visual Studio Code と watsonx Code Assistant 拡張機能が必須です。(注: 2025年8月現在、EclipseプラグインはRAG機能に非対応です。)
-
-
ベクトルストア:
- 本ガイドでは Milvus を使用します。Milvusは
IBM watsonx.data
の一部としてプロビジョニング可能です。
- 本ガイドでは Milvus を使用します。Milvusは
-
notebook実行環境:
- 本ガイドでは watsonx.ai Studio を使用します。
図1. watsonx Code Assistant RAG アーキテクチャ概要
watsonx Code Assistant と Milvus の 連携手順
ステップ1: リポジトリのインデックス作成
このステップでは、AIに参照させたいソースコードやドキュメントを、watsonx.ai Studio
のNotebookを使ってベクトル化し、Milvusデータベースに登録(インデックス化)します。
-
サンプルプロジェクトの入手:
-
Notebookの起動:
-
Notebookの実行と設定:
- Notebook内の指示に従い、セルを上から順に実行していきます。
- 途中のセルで、インデックス化したい対象の情報を入力するよう求められます。以下の情報を正確に入力してください。
- GitリポジトリのURL: RAGの参照対象としたいコードリポジトリのURL。
- Milvusの接続情報: 事前に準備したMilvusインスタンスのホスト名、ポート番号、APIキー。
- インデックス名: Milvus内に作成するインデックスの名前。この名前は後で使うので控えておきます。
-
インデックス作成の確認:
- Notebookの実行が最後まで完了したら、Milvusの管理画面などで、指定した名前のインデックスが作成されていることを確認します。これでAIが参照できる知識ベースが完成しました。
インデックス更新の運用:
* 一度作成したインデックスは、元のドキュメントが更新されても自動では同期されません。
* 更新頻度(毎日、毎週など)や方式(全件洗い替え、差分更新)をチームで計画し、定期的にNotebookを実行する運用を検討してください。Cloud Object Storageの使用量も監視しましょう。
ステップ2: 接続アセットの作成
watsonx Code Assistant
がMilvusに接続するための設定(接続アセット)を作成します。これはインデックスごとに必要です。
接続アセットの命名規則(重要)
この命名規則は、@repo
や @docs
コマンドがどのインデックスを参照するかを決定するためのものです。
-
コードリポジトリ: リポジトリ名と完全に一致させます。(例:
my-awesome-repo
) -
ドキュメント:
docs_
というプレフィックスを付けます。(例:docs_api_specifications
)
-
デプロイメントスペースへ移動:
-
接続アセットの新規作成:
-
接続情報の入力:
-
表示されたフォームに、以下の情報を正確に入力します。特にNameとDescriptionはRAGの動作に直結する重要な項目です。
フィールド 入力内容と解説 Name (名前) 【最重要】 命名規則に従って入力します。
・コードリポジトリの場合: リポジトリ名と完全に一致させます。(例:my-main-app
)
・ドキュメントの場合:docs_
というプレフィックスを付けます。(例:docs_api_specifications
)Description (説明) 【最重要】 以下のJSONをコピーし、 index_name
をステップ1で指定したインデックス名に書き換えて貼り付けます。top_k
などの検索パラメータもここで調整できます。Host (ホスト) MilvusインスタンスのホストURL。 Port (ポート) Milvusインスタンスのポート番号。 Database default
と入力します。Username ibmlhapikey
と入力します。Password watsonx.data
インスタンスから取得したAPIキーを貼り付けます。 -
作成の完了:
-
作成
ボタンをクリックします。これでwatsonx Code Assistant
とMilvusが接続されました。
-
ステップ3: VS Code
をセットアップしてRAGを試す
最後に、VS Codeから実際にRAG機能を使ってみましょう。
3.1 GitHub Personal Access Token (PAT) を設定する
GitHubリポジトリにアクセスするために、一度だけPATの設定が必要です。
-
PATの生成: GitHubの
Settings
>Developer settings
>Personal access tokens
>Tokens (classic)
に移動し、Generate new token
をクリックします。 -
スコープの選択: トークンの権限として、必ず
repo
スコープにチェックを入れてください。これが無いとリポジトリを読み取れません。 - トークンの入力:
3.2 RAG機能を呼び出す
-
対象リポジトリを開く: VS Codeで、ステップ1でインデックス化したリポジトリを開きます。
-
チャットで質問する:
-
watsonx Code Assistant
のチャットパネルを開きます。 - プロンプトの先頭に
@repo
(コードリポジトリの場合)または@docs
(ドキュメントの場合)を付けて質問します。
-
-
結果の確認:
まとめ
本記事では、watsonx Code Assistant
のRAG機能について、Milvusを用いた具体的な設定手順を解説しました。RAGは、汎用的なAIをあなたのプロジェクト固有の知識を持つ 「専門家アシスタント」 へと進化させる、極めて強力な手法です。
この記事を参考に、最も参照頻度の高い一つのリポジトリや、重要な設計ドキュメントからインデックス化をぜひ試してみませんか?コードや仕様を探し回る時間を削減し、より創造的な作業に集中するための大きな助けとなることが体感いただけると思います。
この記事が、皆さんの開発体験を一段上のレベルへ引き上げるきっかけとなれば幸いです。