【Dify】Lesson1-4:RAG入門|ナレッジベースを作ろう

前回(Lesson1-3)では、Difyで初めてのチャットボットを作り、プロンプトや変数の使い方に触れました。
ただ、チャットボットを実務で使おうとすると「社内ルール」「自社商品の説明」「業務手順書」など、決まった情報を元に回答してほしい場面が多いですよね。
そこで登場するのが RAG(検索拡張生成)です。
RAGを使うと、あなたが用意した資料(CSVやPDFなど)を「ナレッジベース」として登録し、ユーザーの質問に対して 必要な情報を探してから回答できる ようになります。

つまり、AIが自分の記憶だけで答えるのではなく、手元の資料を確認して答えられるようになるんだね。
この記事を読むことで、ただの雑談チャットではなく、「根拠のある回答ができる業務向けチャットボット」に一歩近づくことができます。
Lesson1:Dify入門|環境構築と最初の生成AIアプリ開発
・Lesson1-1:生成AIアプリ開発の入り口|Difyとは何かを知ろう
・Lesson1-2:Difyを使う準備|環境構築とセットアップ
・Lesson1-3:初めてのチャットボットアプリを作ろう
・Lesson1-4:RAG入門|ナレッジベースを作ろう ◁今回はここ
・Lesson1-5:作ったアプリを公開しよう|方法と注意点まとめ
Lesson2:まずは体験|基本的なアプリを4つ作ろう
Lesson3:文章業務の自動化|実務で使えるアプリを開発しよう
Lesson4:ファイル処理で広がるDifyアプリ開発
Lesson5:RAG実践|ナレッジ検索アプリを作ろう
Lesson6:機能拡張と外部システム連携|ツールを使いこなそう
Lesson7:総仕上げ|準備を整えて生成AIアプリ開発者へ
チャットボットにナレッジベースを追加しよう
前回作ったシンプルなチャットボットに「知識」を持たせていきます。
Difyでは、PDFやCSVなどの資料をナレッジとして登録し、質問に応じて必要な部分を探して回答に使えるようにできます。
この仕組みを理解するうえで、まずは3つの言葉だけ押さえておきましょう。

用語説明|RAG、ナレッジベース、コンテキスト
これから出てくる用語は、次のように覚えると混乱しにくいです。
言葉の定義はざっくりで大丈夫です。
| 用語 | ひとことで言うと | イメージ |
|---|---|---|
| RAG | 資料を検索してから答える仕組み | 「探して→答える」 |
| ナレッジベース | 参照させたい資料置き場 | 「資料の本棚」 |
| コンテキスト | 今回の回答のために渡される情報 | 「今見ているページ」 |
RAGは、チャットボットが回答するときに「ナレッジベース(本棚)」から関係ありそうな情報を探して、見つけた内容(コンテキスト)を手元に置いた状態で答える、というシステムです。
つまり、ナレッジベースを追加すると、チャットボットは「自分の知識だけで頑張って答える」から、「資料を根拠にして答える」へ進化します。
ここが実務で使えるかどうかの大きな分かれ目です。

RAGについてはLesson5で詳細に学習するから、今はまだ細かい理屈は無しにしよう。
まずは「何となくイメージできる」ことが大事!
ナレッジベース作成:CSV(用語集)を取り込む手順
それでは、ナレッジベースを作成しましょう。
前回制作した「Dify学習アシスタント」に「Dify関連単語とその意味」をまとめた資料を覚えさせ、それを根拠に回答してもらうように修正していきます。
実務では、ここで会社独自の規定資料などを使用することになりますね。
資料は↓↓からダウンロードしてください。
Difyのトップ画面上部の「ナレッジ」から、左側の「+ナレッジベースを作成」をクリックしてください。

「テキストファイルからインポート」を選択し、資料をドラッグ&ドロップしましょう。

「次へ→」を押します。
チャンク設定は「汎用」、インデックス方法は「経済的」を選択しましょう。
これらの設定の細かい意味は、Lesson5で詳細に学習しますので、ここでは分からなくてもOKです。

これでナレッジベースが完成しました。

アプリ連携:コンテキストにナレッジを追加して参照させる
「Dify学習アシスタント」アプリを修正していきましょう。
開発画面を開き、コンテキストの部分の「+追加」をクリックし、資料を追加してください。

それだけで、アプリがナレッジベースを参照できるようになります。
続けて、参照する条件(どんな時に参照するのか)をはっきりさせるため、変数とプロンプトを直していきましょう。
変数の修正
変数roleのオプションは、前回は「Dify」と「Python」に設定しましたが、これを「一般」と「辞書」に修正してください。

このあと、「辞書」が選ばれたときにナレッジベースを参照するように設定していきます。
プロンプトの修正
プロンプトを、以下のように修正してください。
# 役割 - あなたはDifyの専門家です。ユーザーの質問に対して、分かりやすく回答してください。 - ユーザーが明示的に別言語を指定しない限り、回答は日本語で行うこと。 # 命令 - Difyと無関係な質問には回答しないでください。 - 変数roleの値が「辞書」の場合は、必ずコンテキストに基づいて回答してください。 - 変数roleの値が「辞書」の場合は、冒頭でコンテキストの要点を1〜2文で提示し、その後「より詳しい解説が必要か」をユーザーに尋ねてください。 - コンテキストに十分な情報がない場合は、推測せず『資料内では確認できません』と答えてください。
前回より少し細かくなりましたね。
このように「役割」と「命令」に分けて書く方法は基本ですので、是非覚えてください。

「#」や「-」を使う書き方も基本。
これはマークダウン記法という書き方で、ネット上の技術資料はこの書き方がされたものが多い。
それを学習したLLMにも、この書き方が一番伝わりやすいよ。
オープナーの修正
変数を変えたので、このままだとオープナーの文言が意味不明になってしまいます。
以下のように修正しましょう。
Difyについてやさしく解説します!
また、これでナレッジベースを活用したアプリは完成です。
ぜひ実際に起動し、挙動を確認してみましょう。
まとめ
この記事では、チャットボットに「ナレッジベース」を追加し、RAGの仕組みで“資料を根拠に答える”アプリへ進化させる準備をしました。
ポイントは3つだけ押さえておけばOKです。
ナレッジベースは「参照させたい資料の置き場」、コンテキストは「今回の回答のために取り出された情報」、そしてRAGは「取り出してから答える流れ」でした。
ここまでできると、社内マニュアルやFAQ、業務手順書など、仕事で使えるデータをそのまま活かしたチャットボット作りに一気に近づきます。
- 記事改善アンケート|ご意見をお聞かせください(1分で終わります)
-
本サイトでは、みなさまの学習をよりサポートできるサービスを目指しております。
そのため、みなさまの意見をアンケート形式でお伺いしています。1分だけ、ご協力いただけますと幸いです。
(※)APIキーや個人情報等は入力しないようお願いします。
【Dify】記事改善アンケート

Difyを使って「資料を根拠に答える」アプリを体験できたね。
このRAGの考え方は、社内FAQ、業務手順書、マニュアル活用など、実務で特に重要になる部分だよ。
無料のLesson1では、最後にアプリ公開のポイントを紹介します。
その先の会員版では、RAGをもっと実践的に使う方法や、文章業務・ファイル処理・外部連携まで含めたアプリ開発を順番に学べるよ。
「Difyで何か作ってみたい」から一歩進んで、本当に役立つものを作れるようになりたい方は、会員版の案内もあわせて見てみてね。


