DifyとNotionを使った情報収集ワークフロー

Notionは、テキスト、データベース、カレンダー、タスク管理などの機能を一つのツールに統合したオールインワンのワークスペースアプリです。メモ取りから大規模なプロジェクト管理まで、自由にカスタマイズできるブロックエディターを使って情報を整理できます。

本記事では、DifyとNotionとを連携させることで、自動で情報を収集し、ナレッジで活用する例を紹介します。

全体的な構成図は以下のようになります。

ワークフローを使って情報を収集し、結果をNotionのページとして保存します。また、Notionのページはナレッジのソースとして取り込まれ、チャットボットで利用可能となります。
DifyとNotionとの連携は、自動実行することが可能ですので、日々更新されるNewsなどをソースとする場合には、便利かと思います。

目次

Notionの設定

ワークスペースの作成

Notionに登録すると、デフォルトのワークスペースが使えるようになります。普段の業務でもNotionを利用されるのであれば、連携専用のワークスペースを一つ作っておくと良いかと思います。

この後紹介するNotionのインテグレーションは、ワークスペース毎に作成しなければなりません。また、Difyには、一つのインテグレーションしか設定できません。すなわち、Difyとワークスペースは一対一の関係になります。

インテグレーションの作成

以下のURLからインテグレーションを作成します。

https://www.notion.so/profile/integrations

まず、インテグレーション名を追加します。
関連するワークスペースを選択し、種類は「内部(Internal)」を選択し保存します。

インテグレーションが作成されると、「内部インテグレーションシークレット」が作成されますので、「表示」をクリックして、「コピー」をして保存しておきます。

連携用ページの作成

ワークスペースに戻り、「新規ページ」を作成し、タイトルをつけます。

右上のメニューから「接続」を選び、先ほど作成したインテグレーションを選択します。

最後に「ページID」をコピーしておきます。ページIDは、URLのhttps://www.notion.so/に続く文字列です。

Difyの設定

Notionと連携させるために、Difyの環境変数を変更する必要があります。

dockerを使ってインストールした場合には、docker-compose.yamlの関連する箇所を修正します。dockerを使わない場合には、.envファイルを修正します。

インテグレーションを内部(Internal)としている場合は、設定は2箇所です。

NOTION_INTEGRATION_TYPE: internal
NOTION_CLIENT_SECRET: <内部インテグレーションシークレット>

設定が終了したら、Difyを再起動させます。

情報収集ワークフロー (Dify Notion)

Difyで、情報収集用のワークフローを作ります。

ワークフロー

以下の記事にあるWeb検索チャットフローをベースにして、Notionとの連携ワークフローを作ります。

以下に、Web検索チャットフローとの違いのみ説明します。

開始

自動で情報を集めるために、開始時にkeywordsを入力変数として定義しておきます。

Current Time

このブロックは、実行日時を文字列で返すだけのツールです。Notionのページに情報収集日時を追記するためのものです。

CREATE NOTION PAGE

LLMから受け取ったテキストと、現在時刻とをNotionのページに書き込みます。詳細は下記に記します。

CREATE NOTION PAGE

ツールのインストール

ツールをインストールして、認証の設定を行います。入力する「統合シークレット」は先ほど取得した「内部インテグレーションシークレット」を入力します。

設定

Create Notion Pageを追加して、以下のように設定します。

親IDには、連携するページのページID、親タイプはpageを設定します。

実行結果

ワークフローを単体で実行してみます。
キーワードに「トヨタ」を指定した結果です。キーワード(トヨタ)と現在時刻がついたページが作成されています。

ナレッジ連携 (Notion Dify)

Notionにあるページをナレッジとして取り込み、チャットボットで使うことができます。

ナレッジの作成

ナレッジの作成から「Notionから同期」を選択します。

あとは、テキストで読み込んだ時と同じ方法で、ナレッジとして利用可能となります。

ナレッジの設定の各パラメータについては、以下の記事を参照して下さい。

Notion ナレッジを利用したチャットボット

新規にチャットボットを作成し、コンテキストから作成したナレッジを追加すると、収集したデータを使ったチャットボットが完成します。

まとめ

設定したキーワードに基づく情報を収集し、Notionのページとして自動保存するワークフローと、Notionの情報をナレッジとして利用するチャットボットについて、ご紹介しました。

今回の連携の部分(ワークフローの実行と、ナレッジの更新)については、DifyのAPIを使って自動実行することが可能です。

普段、定常的に行なっている情報収集に役立てていただければ幸いです。

目次