前回の記事ではDifyを使ってChatボットやRAGを構築した際の入力項目のモデレーション機能を見ていきました。
今日はNotionをデータソースとしたRAG構築を行う手順をまとめていきます。
Notion とは
Notion(ノーション)とは、メモ、ドキュメント、データベース、タスク管理、Wikiなどを一つの場所で管理できるオールインワンのワークスペースツールです。チーム間の情報共有やでよく使われており、特にRemoteワークやクラウドの積極活用を行っている企業でよく採用されている印象です。個人的にはGoogle Workspaces, Slackと同じレベルで日々の業務を支えるクラウド時代の重要ツールです。
Dify と Notion
Notionは多くの情報を集約させることができ非常に便利ですが、時としてどこにどういう情報がまとまっているか、などの把握に時間を要するケースがあります。検索インターフェースは準備されていますが、どちらかというと検索エンジンの全文検索と似ており、ここを生成AIを用いたRAGにより進化させることができます。
つまりあらかじめNotionのデータをベクトル化しておき、自然言語によるベクトル検索を実現させることで、情報の検索性を向上させる、という試みです。
Difyではナレッジ という情報をベクトル化させ保存しておき、検索に用いる機能が提供されていますが実はNotionを標準でサポートしています。

この記事では、この設定手順をまとめていきます。
Notion との同期
画面右上のプロファイルをクリックし、設定を選択します。

データソース をクリックします。

ノーションの接続 をクリックします。(余談ですがここはそのままNotionでいい気がしています💦)

複数のNotionワークスペースに参加している場合は、接続先を選択して ページを選択する をクリックします。

読み込みたいページを選択して、 アクセスを許可する をクリックします。

ナレッジの作成
ではナレッジを作成します。ナレッジとはチャットボットやAIアプリケーションに特定の情報やドキュメントを参照させるための知識ベース(外部データソース)を意味します。
ナレッジタブからナレッジベースを作成 をクリックします。

Notionを選択するとページ一覧が出てきますので、取り込みたい記事を選択します。なお無償版ではネストされた記事を一気にすべて読み込むことはできません。

もし目的のページが出てこない場合、Notion側の記事で以下の作業を行います。
画面右上のメニューでアクティブな接続にDifyを明示的に許可してあげます。

こうすることでDify側で再度画面をリロードすると記事が表示されます。
しばらく待つとステータスがキューイングから利用可能に変更になります。無償版ですとそれなりに待ちます。

ナレッジ付きチャットボットの構築(RAG)
ナレッジが出来上がったので、次にナレッジ付きチャットボットを作ります。DifyではRAGではなく、ナレッジ付きチャットボットと呼んでいます。
まずは画面上部のスタジオタブからテンプレートから作成をクリックします。

左ペインのKnowledge Retrievalからチャットボットを選択します。

このようなひな形が出てきます。

KNOWLEDGE RETRIEVAL ブロックをクリックして、先ほど生成したナレッジを組み込んであげます。

あとはプレビューから対話を行えば完成です。

エラーが出る場合は検索設定からウェイト設定を選んで再度試します。
おつかれさまでした!