【Dify】Lesson5-3:賢いRAGアプリを作ろう|クエリ変換とメモリ活用

Lesson5-1では「まず動く社内FAQチャットボット」を作り、Lesson5-2では「ナレッジ設定をどう考えるか」を整理してきました。
ここまででRAGの土台はできていますが、実務で使っていると次の壁にぶつかりがちです。
- ユーザーの質問があいまいで、検索にヒットしない or ズレた情報を拾う
- さっきの会話の流れを踏まえてほしいのに、毎回説明し直すことになる
- FAQと関係ない雑談や別件質問が混ざって、回答品質が不安定になる
今回は、こうした「RAGあるある」を一段解決して、同じナレッジを使っても “賢く答えられる” Difyアプリに育てていきます。
この記事を読み終わる頃には、次のことができるようになります。
- 質問分類で「答えるべき質問」と「関係ない質問」を分岐できる
- LLMを使ったクエリ変換で、検索の当たりを強くできる
- 会話文脈を活かして、同じ質問でも状況に合う回答を返せる
このあと「今回作るアプリの概要」で全体像をつかみ、続く開発パートで手を動かして仕上げていきましょう。
Lesson1:Dify入門|環境構築と最初の生成AIアプリ開発
Lesson2:まずは体験|基本的なアプリを4つ作ろう
Lesson3:文章業務の自動化|実務で使えるアプリを開発しよう
Lesson4:ファイル処理で広がるDifyアプリ開発
Lesson5:RAG実践|ナレッジ検索アプリを作ろう
・Lesson5-1:RAGアプリ入門|社内FAQチャットボットを作ろう
・Lesson5-2:ナレッジの詳細設定方法と考え方
・Lesson5-3:賢いRAGアプリを開発|クエリ変換とメモリ活用 ◁今回はここ
Lesson6:機能拡張と外部システム連携|ツールを使いこなそう
Lesson7:総仕上げ|準備を整えて生成AIアプリ開発者へ
賢いRAGチャットボットの全体像(クエリ変換・メモリ活用)

今回作るのは、Lesson5-1で作った社内FAQチャットボットを「実務で使っても崩れにくい形」に進化させたRAGアプリです。
ベースは同じ “ナレッジ検索チャット” ですが、検索に入る前の前処理と、会話の文脈の扱い方を工夫して、回答の当たり外れを減らしていきます。
ナレッジに格納する資料も同じものを使用しますので、それらが手元にない場合はLesson5-1の記事に戻って準備をしてきてください。

処理フロー:質問分類→クエリ変換→知識検索→回答生成
全体の流れはシンプルで、次のような順番で動きます。
最初に質問を受け取り、回答すべき内容かを判定し、必要なら検索用のクエリに整形してからナレッジ検索を行い、最後に回答を生成します。
- ユーザー入力を受け取る
- 質問分類器で「ナレッジ検索すべき質問か」を判定する
- 対象の質問なら、LLMでクエリ変換して検索用の文に整える
- ナレッジ検索(RAG)で関連情報を取りにいく
- 取得した情報を使って回答を生成する
- 対象外の質問なら、別の返答ルートに分岐する(関係ない質問への返し)

このアプリが“賢く”なる2つのポイント
この構成で効いてくるのが、次の2点です。
1つ目はクエリ変換です。
ユーザーの入力をそのまま検索に投げず、検索に強い形へ言い換えてからナレッジ検索します。これにより、言い回しの違いや曖昧さで検索が外れるケースを減らせます。
2つ目はメモリ活用です。
会話の前提(何について話しているか、どの状況か)をうまく引き継ぎながらクエリ変換や回答生成に反映させます。結果として、毎回説明し直さなくても会話がつながりやすくなります。
このあと「アプリ開発」パートでは、いまの全体像をそのままDifyのワークフローに落とし込み、各ノードの設定で “賢さ” が出るポイントを具体的に作り込んでいきます。
それでは、実際に「賢い社内FAQチャットボット」の開発を始めましょう。
ここから先は会員向けの限定テキストになります。
当サイトの概要や特徴、無料で読める範囲 等は Dify学習館のトップページ をご確認ください。
すでに購入済みの方はこちら




