0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

watsonx Code AssistantのRAG機能で、AIの回答精度を向上させる方法

Posted at

先日、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 Codewatsonx Code Assistant 拡張機能が必須です。(注: 2025年8月現在、EclipseプラグインはRAG機能に非対応です。
  • ベクトルストア:
    • 本ガイドでは Milvus を使用します。Milvusは IBM watsonx.data の一部としてプロビジョニング可能です。
  • notebook実行環境:
    • 本ガイドでは watsonx.ai Studio を使用します。

図1. watsonx Code Assistant RAG アーキテクチャ概要
スクリーンショット 2025-08-13 10.56.23.png


watsonx Code Assistant と Milvus の 連携手順

ステップ1: リポジトリのインデックス作成

このステップでは、AIに参照させたいソースコードやドキュメントを、watsonx.ai StudioのNotebookを使ってベクトル化し、Milvusデータベースに登録(インデックス化)します。

  1. サンプルプロジェクトの入手:

    • watsonx.ai Studioにログインします。
      スクリーンショット 2025-08-06 14.44.08.png
    • サンプルの中からCreate RAG vector stores for watsonx Code Assistantというプロジェクトを探し、これを基に新規プロジェクトを作成します。このプロジェクトには、インデックス作成に必要なNotebookが含まれています。
      wca1.png
      wca2.png
      wca3.png
      wca4.png
      wca5.png
  2. Notebookの起動:

    • 作成したプロジェクトの資産タブを開きます。
      wca6.png
    • NotebooksセクションにあるPopulate vector store notebookをクリックして、編集モードで開きます。
      wca7.png
  3. Notebookの実行と設定:

    • Notebook内の指示に従い、セルを上から順に実行していきます。
    • 途中のセルで、インデックス化したい対象の情報を入力するよう求められます。以下の情報を正確に入力してください。
      • GitリポジトリのURL: RAGの参照対象としたいコードリポジトリのURL。
      • Milvusの接続情報: 事前に準備したMilvusインスタンスのホスト名、ポート番号、APIキー。
      • インデックス名: Milvus内に作成するインデックスの名前。この名前は後で使うので控えておきます。

    wca8.png

  4. インデックス作成の確認:

    • Notebookの実行が最後まで完了したら、Milvusの管理画面などで、指定した名前のインデックスが作成されていることを確認します。これでAIが参照できる知識ベースが完成しました。

    インデックス更新の運用:
    * 一度作成したインデックスは、元のドキュメントが更新されても自動では同期されません。
    * 更新頻度(毎日、毎週など)や方式(全件洗い替え、差分更新)をチームで計画し、定期的にNotebookを実行する運用を検討してください。Cloud Object Storageの使用量も監視しましょう。

ステップ2: 接続アセットの作成

watsonx Code Assistant がMilvusに接続するための設定(接続アセット)を作成します。これはインデックスごとに必要です。

接続アセットの命名規則(重要)

この命名規則は、@repo@docs コマンドがどのインデックスを参照するかを決定するためのものです。

  • コードリポジトリ: リポジトリ名と完全に一致させます。(例: my-awesome-repo
  • ドキュメント: docs_ というプレフィックスを付けます。(例: docs_api_specifications
  1. デプロイメントスペースへ移動:

    • watsonx Code Assistantのプラットフォーム画面に移動します。
    • 左側のナビゲーションメニュー(ハンバーガーメニュー☰)からデプロイメントを選び、対象のデプロイメントスペースをクリックします。
      wca78png.png
  2. 接続アセットの新規作成:

    • デプロイメントスペースの資産(Assets)タブを開きます。
      wca9.png
    • 資産をインポートまたは資産の追加 +ボタンをクリックし、データ・ソースへの接続を選択します。
      スクリーンショット 2025-08-13 14.12.36.png
  3. 接続情報の入力:

    • 接続タイプの検索欄に"milvus"などを入力し、一覧からMilvusを選択します。
      wca10.png

    • 表示されたフォームに、以下の情報を正確に入力します。特にNameDescriptionは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キーを貼り付けます。
  4. 作成の完了:

    • 作成ボタンをクリックします。これでwatsonx Code AssistantとMilvusが接続されました。

ステップ3: VS CodeをセットアップしてRAGを試す

最後に、VS Codeから実際にRAG機能を使ってみましょう。

3.1 GitHub Personal Access Token (PAT) を設定する

GitHubリポジトリにアクセスするために、一度だけPATの設定が必要です。

  1. PATの生成: GitHubのSettings > Developer settings > Personal access tokens > Tokens (classic)に移動し、Generate new tokenをクリックします。
  2. スコープの選択: トークンの権限として、必ずrepoスコープにチェックを入れてください。これが無いとリポジトリを読み取れません。
  3. トークンの入力:
    • VS Codeでコマンドパレットを開きます(Ctrl+Shift+P or Cmd+Shift+P)。
    • WCAと入力してWCA: Enter GitHub Personal Access Token for WCAを探し、選択します。
      スクリーンショット 2025-08-13 14.27.28.png
    • 生成したPATを貼り付けてEnterキーを押します。
      スクリーンショット 2025-08-13 14.27.35.png
      以下のメッセージを確認できれば問題なく入力できています。
      スクリーンショット 2025-08-13 14.27.55.png

3.2 RAG機能を呼び出す

  1. 対象リポジトリを開く: VS Codeで、ステップ1でインデックス化したリポジトリを開きます。

  2. チャットで質問する:

    • watsonx Code Assistantのチャットパネルを開きます。
    • プロンプトの先頭に@repo(コードリポジトリの場合)または@docs(ドキュメントの場合)を付けて質問します。
  3. 結果の確認:

    • 返ってきた回答が、一般的な知識ではなく、あなたのコードベースやドキュメントに固有の内容を正確に反映していることを確認します。これが確認できれば、RAGは正しく機能しています!
      プレゼンテーション1のコピー.gif

まとめ

本記事では、watsonx Code Assistant のRAG機能について、Milvusを用いた具体的な設定手順を解説しました。RAGは、汎用的なAIをあなたのプロジェクト固有の知識を持つ 「専門家アシスタント」 へと進化させる、極めて強力な手法です。

この記事を参考に、最も参照頻度の高い一つのリポジトリや、重要な設計ドキュメントからインデックス化をぜひ試してみませんか?コードや仕様を探し回る時間を削減し、より創造的な作業に集中するための大きな助けとなることが体感いただけると思います。

この記事が、皆さんの開発体験を一段上のレベルへ引き上げるきっかけとなれば幸いです。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?