#5 【Dify入門(ノード編)】 ナレッジ検索(知識検索)ノード
今回はDifyの最大の魅力でもあるナレッジを使用したナレッジ検索(知識検索)ノードについて解説いたします。
ナレッジ検索(知識検索)ノードを使いこなすことで、AIにオリジナルの知識を与えることができるようになります。
ナレッジ検索(知識検索)をうまく使えていないという方がいれば、参考になれば嬉しいです。
そもそもナレッジ検索(知識検索)って何?
ナレッジ検索(知識検索)とは「自分たちが持っている特定の情報(ドキュメントやウェブサイトの内容、FAQなど)を、AIに組み込んで検索・回答してもらう仕組み」のことです。AIがもともと持っている情報だけでなく、自分たちのみしか保有していない情報を提供することができるため、独自性のある回答を生成することができるようになります。
Difyのナレッジ検索(知識検索)ノードとは?
Difyのナレッジ検索(知識検索)ノードとは、上記の仕組みを簡単に構築できるために用意されたノードです。
このノードを使用することで、あらかじめ用意しておいた独自の文書・データを検索し、その結果をAIの回答生成に活かすことができます。
どうしてナレッジ検索(知識検索)を使う必要があるのか?
通常のチャットAI(ChatGPTなど)は、Web上や学習データとして与えられた膨大なテキストから「一般的」な知識を使って回答します。
しかし、企業や個人が独自に持っている情報(仕様書やマニュアル、FAQ、社内文書など)は「一般的な学習データ」に含まれていないことが多いです。
そこで、「自分たちが所有する情報」に基づいた正確な回答をAIにさせたいときに必要なのが「ナレッジ検索(知識検索)」となります。
ナレッジ検索(知識検索)を使うメリット
1. 簡単に独自のドキュメントを登録できる
PDFやテキストファイル、あるいはウェブページなどを簡単に登録して、AIに読み込ませることができます。
2. 回答の一貫性向上
独自で用意したドキュメントの内容をもとに回答するため、問い合わせ対応の品質や正確さが揺れにくくなります。
3. 学習や訓練コストの削減
事前にドキュメントを大量にAIに学習させるのではなく、アップロード→検索の流れで使えるため、生成AIのモデルを再学習するコストが不要な場合が多いです。
ナレッジ検索(知識検索)ノードの使い方
①事前にナレッジを登録する
上部メニューの「ナレッジ」から「ナレッジを作成」を選択します。
「テキストファイルから同期」「Notionから同期」「Webサイトから同期」または「外部ナレッジデータベースへの接続」の4種類の手法で登録が可能です。
②クエリ変数の選択
クエリ変数の選択とは、ナレッジベース内を検索する際の検索ワードになります。Difyの対話型アプリケーションでは、開始ノードのsys.queryをクエリ変数として使用できます。入力された内容をもとに、ナレッジ ベースが受け入れることができる最大クエリ コンテンツは 200 文字なので注意が必要です。
③ナレッジを選択
①で登録した任意のナレッジベースを選択します。
ワークフローに合わせて必要なナレッジを選択しましょう。
④次のノードを設定
最後に次のノードを選択してナレッジ検索(知識検索)ノードの設定は完了です。
補足)ナレッジ検索(知識検索)ノードの出力について
ナレッジ検索(知識検索)の出力は変数resultに格納されています。
ナレッジ検索(知識検索)ノード以降のLLMノードではコンテキストとして変数内の情報を使用できます。
ナレッジ検索(知識検索)ノードの注意点
最後に自分が躓いた点を注意点として紹介しておきます。
ナレッジ検索(知識検索)で何もヒットするものがなかった場合、結果は「空(null)」で返ってきます。
ただし、「空(null)」の場合でも下流のLLMノードのコンテキストはエラーにはなりません。
そのため、結果にうまくドキュメントの内容が反映されていない場合は、ナレッジ検索(知識検索)で何もヒットしていない可能性があります。
ナレッジ検索(知識検索)の結果が空の場合の対策
結果を空(null)のまま渡したくない場合は、ナレッジ検索(知識検索)ノードの後に条件分岐ノードを入れることをオススメします。
ここでnullではない場合は、次のLLMノードに進むとドキュメント内のナレッジが反映された回答が得られます。
まとめ
この記事では条件分岐ノードについて説明しました。
慣れるまでは少しややこしい部分はありますが、複雑な処理を実施する場合は必要となるケースが多くなります。
条件分岐ノードを使いこなして色々な条件に応じた処理を作成してみましょう。
関連記事
#1 【Dify入門(ノード編)】開始ノード
#5 【Dify入門(ノード編)】ナレッジ検索(知識検索)ノード
#7 【Dify入門(ノード編)】条件分岐ノード
補足
XではDifyに関するアップデート、最新情報を発信しています。
もしnote内でわかりづらい所や、もっと知りたい箇所があればDMでも構いませんので連絡いただければと思います。