前回までで RAG のセットアップが完了したので、今回は動作確認をします。以前 DominoIQ の検証で作成したサンプルアプリ を RAG 用に修正して検証します。
コマンド文書の追加
RAG の効果を確認することを目的に RAG にアクセスしないコマンド文書を追加します。コマンド名を dxlSuiteHelp_NoRAG とし、RAG 以外の設定を同じにします。
テストアプリの作成
まず、問い合わせ内容を記入する Prompt と DominoIQ の返答を表示する Responce フィールドを作成します。
RAG を使用するかのラジオボタンを作成します。選択肢には次の通り設定します。
- RAG 有効|dxlSuiteHelp
- RAG 無効|dxlSuiteHelp_NoRAG
このラジオボタンの選択で、DominoIQ のコマンドを切り替えるというとこですね。
最後に DominoIQ に問い合わせを行う[IQ]ボタンを作成します。今回はラジオボタンの選択で実行するコマンドを切り替えられるようにしています。
| Sub Click(Source As Button) Dim ns As New NotesSession Dim nuiw As New NotesUIWorkspace Dim nuid As NotesUIDocument Dim nd As NotesDocument Dim llmreq As NotesLLMRequest Dim llmres As NotesLLMResponse Dim sText As String Dim sCmd As String Set nuid = nuiw.CurrentDocument Set nd = nuid.Document sText = nd.Prompt(0) sCmd = nd.IQCommand(0) 'コマンドの取得 'DominoIQ へ問い合わせ Set llmreq = ns.CreateLLMRequest() Set llmres = llmreq.Completion(ns.CurrentDatabase.Server, sCmd, sText) 'DominoIQ の返答を記録 nd.Results = llmres.Content nd.FinishReason = llmres.FinishReason End Sub |
今回は、DominoIQ のレスポンスの戻り値である FinishReason もフィールドに書き込み結果を確認できるようにしてみました。
パラメータの設定
今回は RAG の動作検証が目的ですので、デバッグパラメータを Domino サーバの notes.ini に設定します。設定するのは以下の 3 つです。
- DEBUG_DOMIQ=1
- DEBUG_DOMINOIQ_LLMREQUEST=1
- DEBUG_DOMINOIQ_LLMPAYLOAD=1
各パラメータの挙動については過去記事「Domino IQ とデバッグパラメータ」を参照ください。
また、今回の検証ではパラフレーズを無効化して行います。パラフレーズについても以前記事を書いていますので、「Domino IQ: パラフレーズ機能の動作」を参照ください。
- DOMIQ_DISABLE_PROMPT_PARAPHRASE=1 のエントリを削除
動作検証
検証準備ができたので、RAG の有効/無効を切り替えながら検証します。問い合わせ内容は、『dxlSuite を知っていますか?』と RAG に食べさせた dxlSuite に関して聞いてみます。
結果は下図のようになりました。
RAG を有効にすると dxlSuite の特徴を的確に返していますが、無効の場合 DXL の一般的な説明をしたり、dxlSuite が Domino の開発者向けツールであると知ったかぶりのウソを吐いていることがわかりますね。
具体的は、ヘルプ内の「はじめに」文書に記載されている内容をうまくまとめてくれていることがわかります。







