【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の記事一覧

次のページ>>

チャットボットにナレッジベースを追加しよう

前回作ったシンプルなチャットボットに「知識」を持たせていきます。

Difyでは、PDFやCSVなどの資料をナレッジとして登録し、質問に応じて必要な部分を探して回答に使えるようにできます。

この仕組みを理解するうえで、まずは3つの言葉だけ押さえておきましょう。

用語説明|RAG、ナレッジベース、コンテキスト

これから出てくる用語は、次のように覚えると混乱しにくいです。

言葉の定義はざっくりで大丈夫です。

用語ひとことで言うとイメージ
RAG資料を検索してから答える仕組み「探して→答える」
ナレッジベース参照させたい資料置き場「資料の本棚」
コンテキスト今回の回答のために渡される情報「今見ているページ」

RAGは、チャットボットが回答するときに「ナレッジベース(本棚)」から関係ありそうな情報を探して、見つけた内容(コンテキスト)を手元に置いた状態で答える、というシステムです。

つまり、ナレッジベースを追加すると、チャットボットは「自分の知識だけで頑張って答える」から、「資料を根拠にして答える」へ進化します。

ここが実務で使えるかどうかの大きな分かれ目です。

勉強猫
勉強猫

RAGについてはLesson5で詳細に学習するから、今はまだ細かい理屈は無しにしよう。

まずは「何となくイメージできる」ことが大事!

ナレッジベース作成:CSV(用語集)を取り込む手順

それでは、ナレッジベースを作成しましょう。

前回制作した「Dify学習アシスタント」に「Dify関連単語とその意味」をまとめた資料を覚えさせ、それを根拠に回答してもらうように修正していきます。

実務では、ここで会社独自の規定資料などを使用することになりますね。

資料は↓↓からダウンロードしてください。

Difyのトップ画面上部の「ナレッジ」から、左側の「+ナレッジベースを作成」をクリックしてください。

Difyを用いた簡単なRAGアプリの開発画面のキャプチャ。トップページからナレッジタグを選択しているところ。

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

Difyを用いた簡単なRAGアプリの開発画面のキャプチャ。ナレッジに資料をアップロードする画面。

「次へ→」を押します。

チャンク設定は「汎用」、インデックス方法は「経済的」を選択しましょう。

これらの設定の細かい意味は、Lesson5で詳細に学習しますので、ここでは分からなくてもOKです。

Difyを用いた簡単なRAGアプリの開発画面のキャプチャ。ナレッジにアップロードした資料の設定画面。

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

Difyを用いた簡単なRAGアプリの開発画面のキャプチャ。ナレッジベースが完成したことを示す画面。

アプリ連携:コンテキストにナレッジを追加して参照させる

「Dify学習アシスタント」アプリを修正していきましょう。

開発画面を開き、コンテキストの部分の「+追加」をクリックし、資料を追加してください。

Difyを用いた簡単なRAGアプリの開発画面のキャプチャ。コンテキストにナレッジを追加するところ。

それだけで、アプリがナレッジベースを参照できるようになります。

続けて、参照する条件(どんな時に参照するのか)をはっきりさせるため、変数とプロンプトを直していきましょう。

変数の修正

変数roleのオプションは、前回は「Dify」と「Python」に設定しましたが、これを「一般」と「辞書」に修正してください。

このあと、「辞書」が選ばれたときにナレッジベースを参照するように設定していきます。

プロンプトの修正

プロンプトを、以下のように修正してください。

# 役割
- あなたはDifyの専門家です。ユーザーの質問に対して、分かりやすく回答してください。
- ユーザーが明示的に別言語を指定しない限り、回答は日本語で行うこと。

# 命令
- Difyと無関係な質問には回答しないでください。
- 変数roleの値が「辞書」の場合は、必ずコンテキストに基づいて回答してください。
- 変数roleの値が「辞書」の場合は、冒頭でコンテキストの要点を1〜2文で提示し、その後「より詳しい解説が必要か」をユーザーに尋ねてください。
- コンテキストに十分な情報がない場合は、推測せず『資料内では確認できません』と答えてください。

前回より少し細かくなりましたね。

このように「役割」と「命令」に分けて書く方法は基本ですので、是非覚えてください。

勉強猫
勉強猫

「#」や「-」を使う書き方も基本。

これはマークダウン記法という書き方で、ネット上の技術資料はこの書き方がされたものが多い。

それを学習したLLMにも、この書き方が一番伝わりやすいよ。

オープナーの修正

変数を変えたので、このままだとオープナーの文言が意味不明になってしまいます。

以下のように修正しましょう。

Difyについてやさしく解説します!

また、これでナレッジベースを活用したアプリは完成です。

ぜひ実際に起動し、挙動を確認してみましょう。

まとめ

この記事では、チャットボットに「ナレッジベース」を追加し、RAGの仕組みで“資料を根拠に答える”アプリへ進化させる準備をしました。

ポイントは3つだけ押さえておけばOKです。

ナレッジベースは「参照させたい資料の置き場」、コンテキストは「今回の回答のために取り出された情報」、そしてRAGは「取り出してから答える流れ」でした。

ここまでできると、社内マニュアルやFAQ、業務手順書など、仕事で使えるデータをそのまま活かしたチャットボット作りに一気に近づきます。

Q
記事改善アンケート|ご意見をお聞かせください(1分で終わります)

本サイトでは、みなさまの学習をよりサポートできるサービスを目指しております。
そのため、みなさまの意見をアンケート形式でお伺いしています。

1分だけ、ご協力いただけますと幸いです。

(※)APIキーや個人情報等は入力しないようお願いします。

【Dify】記事改善アンケート
4.改善してほしい点(任意・複数選択)
勉強猫
勉強猫

Difyを使って「資料を根拠に答える」アプリを体験できたね。

このRAGの考え方は、社内FAQ、業務手順書、マニュアル活用など、実務で特に重要になる部分だよ。

無料のLesson1では、最後にアプリ公開のポイントを紹介します。

その先の会員版では、RAGをもっと実践的に使う方法や、文章業務・ファイル処理・外部連携まで含めたアプリ開発を順番に学べるよ。

「Difyで何か作ってみたい」から一歩進んで、本当に役立つものを作れるようになりたい方は、会員版の案内もあわせて見てみてね。

<<前のページ

Difyの記事一覧

次のページ>>

記事URLをコピーしました