0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【Dify×Notion】ナレッジ検索+回答生成のチャットフローを作る

Last updated at Posted at 2025-10-26

DifyでNotionからナレッジ検索して、回答生成のチャットフローを作ってみたのでその手順をまとめました。

利用環境

利用環境は以下の通り。

  • Dify: Sandboxプラン
  • Notion: フリープラン(個人利用)

とりあえず試してみたかったので、いずれも無料かつ手軽に使えるものをチョイスしました。

事前準備

1. Notion インテグレーション

まずは、NotionをDifyと連携するために必要な事前準備をすませておきましょう。

(1) Notionインテグレーションの設定

使用するNotionアカウントにログインしたら、
https://www.notion.so/profile/integrations
を叩いて、「新しいインテグレーション」をクリックします。

スクリーンショット 2025-10-06 8.44.44.png

以下の通り、設定し、「保存」(④)をクリック

スクリーンショット 2025-10-26 22.08.16.png

項目名 設定内容
インテグレーション名 任意のインテグレーション名を入力(①)
関連ワークスペース 連携したいワークスペースを選択(②)
種類 「内部」を選択(デフォルトでそうなっているはず)(③)

すると、以下のようなモーダルが出現するので、「インテグレーション設定」をクリックして設定に進みます。

スクリーンショット 2025-10-06 8.46.17.png

以下の通り、作業 or 設定し、「保存」(④)をクリック
スクリーンショット 2025-10-06 8.47.03.png

項目名 設定内容
内部インテグレーションシークレット 「表示」をクリックすると出現するキーをコピーして控えておく(①)
コンテンツ機能 「コンテンツを読み取る」にチェック(②)
ユーザー機能 「ユーザー情報なし」を選択(③)

内部インテグレーションシークレットは、機密情報です。
取り扱いには十分注意しましょう。

今回、Notionの内容が読み取れれば良いので、コンテンツ機能、ユーザー機能の設定については上記で必要十分です。

(2) ナレッジ検索に使うページの接続

続いて、Notionと連携したいページの接続設定を実施します。

Difyと連携したいNotionページに移動して、ページ右上の三点リーダーをクリックし(①)、「接続」を選択したら(②)、作成したNotionインテグレーションを選択(③)。

スクリーンショット 2025-10-07 8.47.48.png

本Notionページは、### が各セクション見出しとなります。

2. AIモデルのAPIキー取得(任意)

必要に応じて、使用するAIモデルのAPIキーを取得します。

今回はDifyのSandboxプランについている、無料のOpenAIクレジットを使用することにしたため、手順はスキップしますが、継続的に使う場合は必要になります。

  • 課金の仕方
  • APIキーの取得方法
  • モデル別の料金

辺りはチェックしておくと良いでしょう。

Difyでの作業

1. サインアップ

Difyには、
https://cloud.dify.ai/signin
より、

  • GitHub
  • Google
  • メールアドレス

のいずれかでサインアップできます。

スクリーンショット 2025-10-26 11.08.36.png

お好みの方法でOKです。

2. モデルプロバイダーの設定

サインインしたら、まずは、モデルプロバイダーを設定します。

OpenAIモデルのインストール

画面右上のDアイコンをクリックし(①)、「設定」を選択します(②)。

スクリーンショット 2025-10-04 16.08.49.png

左メニューにて、「モデルプロバイダー」をクリックし(①)、OpenAIにカーソルを合わせたら左下のインストールをクリック(②)

スクリーンショット 2025-10-04 16.11.56.png

使用モデルの有効化

画面上部にOpenAIモデルが表示されるのでセットアップ右横の三点リーダーをクリックし(①)、クォータを選択します(②)。
スクリーンショット 2025-10-26 11.28.22.png

使用するモデルを選択します。

「LLM/CHAT」と「TEXT EMBEDDING」のモデルをそれぞれ1つずつ選択します。

今回、

  • gpt-4o-mini
  • text-embedding-3-small

を選択しました。

gpt-4o-mini
スクリーンショット 2025-10-26 11.51.41.png

text-embedding-3-small
スクリーンショット 2025-10-26 11.51.15.png

3. データソースの設定

続いて、データソースの設定です。
今回、Notionを使用するのでその設定を行います。

Notionデータソースのインストール

「設定」にて、「データソース」(①)を選択し、「インストール」をクリック(②)
スクリーンショット 2025-10-06 8.39.00.png

APIキーの追加

インストールが完了したら、Notion右端の「+設定」(①)をクリックし、「APIキーを追加してください」をクリック(②)
スクリーンショット 2025-10-06 8.48.53.png

以下の通り入力し、「保存」をクリック。
スクリーンショット 2025-10-06 8.49.09.png

項目 入力値
①認証名 任意の名前
②統合シークレット 事前準備で取得した「内部インテグレーションシークレット」

3. ナレッジベースの作成

続いて、ナレッジベースの作成します。

ダッシュボードに戻り、「ナレッジ」を選択し(①)、「ナレッジベースを作成」をクリック(②)。
スクリーンショット 2025-10-21 22.46.24.png

「Notionから同期」を選択したら(①)、対象のNotionワークスペースを選択し(②)、ナレッジベースとしたいNotionページにチェックを入れて(③)、「次へ」をクリック(④)
スクリーンショット 2025-10-21 22.46.43.png

ナレッジベースの設定を実施します。

チャンク識別子に以下の通り入力し(①)、チャンクをプレビューをクリックして(②)、見出し単位でチャンクされていることを確認したら(③)、「保存して処理」をクリック(④)
※他はデフォルトでOKです。

スクリーンショット 2025-10-26 22.21.35.png

項目 入力値 備考
①チャンク識別子 \n\n### Notionの見出しを活用

なお、画面中央付近の「埋め込みモデル」にデフォルトで
text-embedding-3-small
が設定されています(⑤)。
このモデルはここで使われるというわけです。

4. チャットフローの作成

いよいよチャットフローの作成に入っていきます。

チャットフローの作成

まずは、チャットフローを作成します。
ダッシュボードにて、「スタジオ」(①)>「最初から作成」をクリック(②)
スクリーンショット 2025-10-21 22.48.00.png

デフォルトで「チャットフロー」が選択されているはず(①)。
アプリのアイコンと名前(②)、説明(③)を任意に入力し、「作成する」をクリック(④)。

すると、以下のような画面に遷移します。

スクリーンショット 2025-10-21 22.49.04.png

デフォルトノードを消す

デフォルトノード

  • LLM
  • 回答

は一旦消してしまいます。

各ノードをクリック、もしくは、ホバーすると右上に出現する三点リーダーをクリックし(①)、削除をクリック(②)。

スクリーンショット 2025-10-21 22.49.52.png

知識検索

次に、「知識探索」ノードを追加します。
「開始」ノードをホバーすると右端に出現する「+」をクリックし(①)、「知識探索」をクリック(②)
スクリーンショット 2025-10-21 22.50.28.png

画面右方に「知識検索」モーダルが出現するので、ナレッジベース欄右端の「+」をクリック(①)
スクリーンショット 2025-10-21 22.50.45.png

「参照する知識を選択」モーダルが出現するので、作成したナレッジベースをクリックし(①)、「追加」をクリック(②)
スクリーンショット 2025-10-21 22.50.55.png

LLM

続いて、「知識探索」ノードの後ろに「LLM」ノードを追加します。
まずは、以下の通り選択、入力しましょう。

スクリーンショット 2025-10-21 22.52.52.png

項目 入力値
①コンテキスト result
②SYSTEM 以下の通り入力

以下、SYSTEMの入力内容です。

ナレッジの情報をもとに回答してください。
{{#context#}}


回答が見つかったか/見つからなかったかで、以下の通り回答を分けてください。


### 回答が見つかった場合


回答を出力してください。
文章は、句点で改行してください。
手順については、各文の冒頭に採番もお願いします。


補足事項等は、手順から1行空けて回答してください。
補足事項等には、採番は不要です。


### 回答が見つからない場合


以下の文章を出力してください。

```
回答が見つかりませんでした。
お手数ですが、他の言い方で再度ご質問していただくか、以下のお問合せ先までご連絡ください。


総合フリーダイヤル: 0120-xx-xxxx  
平日: 9:30-20:00  
土日祝日: 9:30-17:30
```

### 補足事項

「回答が見つかった場合」、「回答が見つからない場合」という文言は、回答には含めないでください。

SYSTEM欄の下の「+メッセージを追加」があるのでクリックします。

スクリーンショット 2025-10-21 22.53.06.png

USER欄が出現するので、{x}をクリック(①)して、sys.queryを選択(②)。

スクリーンショット 2025-10-21 22.53.33.png

忘れがちな設定ですが、ユーザーの入力を正しく認識させるために必要なので、必ず設定するようにしましょう。

回答

最後のノード、「回答」ノードを作成します。
LLMノードの後ろに繋げる形で作成したら、{x}をクリック(①)して、textを選択(②)。

スクリーンショット 2025-10-21 22.54.24.png

プレビュー

この時点で、以下のようなチャットフローになっているはずです。

スクリーンショット 2025-10-26 20.57.07.png

プレビューで動作確認をします。
画面右上の「プレビュー」をクリックすると(①)、チャットのプレビューが出現するので、任意の文章を入力し(②)、送信ボタンをクリック(③)

スクリーンショット 2025-10-26 20.58.39.png

想定通りの回答が返ってこればOKです。

スクリーンショット 2025-10-26 21.07.59.png

会話の開始 メッセージの設定

任意ですが、会話の開始 メッセージを設定しておくと、ユーザーが何をすべきかがわかりやすくなります。
プレビューのモーダルの下部にある「管理」をクリック(①)。

スクリーンショット 2025-10-26 21.13.40.png

「機能」モーダルが出現するので、一番上の「会話の開始」のトグルをONにし(①)、「オープナーを書く」をクリック(②)。

スクリーンショット 2025-10-26 21.14.06.png

オープナーメッセージにチャット起動時に表示したいメッセージを入力し(①)、「保存」をクリック(②)

スクリーンショット 2025-10-26 21.14.37.png

すると、以下のようにチャット起動時に初期メッセージが出るようになります。
何をすればいいかが、ひと目でわかっていいですね。

スクリーンショット 2025-10-26 21.22.49.png

公開

作成したチャットを公開します。
画面右上の「公開する」をクリックし(①)、「更新を公開」をクリックしましょう(②)。

スクリーンショット 2025-10-21 23.51.24.png

その後、「アプリを実行」をクリックすると(③)、公開されたチャットに遷移します。

スクリーンショット 2025-10-26 21.29.42.png

公開状態では、URLさえ知っていれば誰でも使える状態になります。
むやみやたらに使用できないようにするため、使わない時は、無効にしておきましょう。

編集画面左上のチャットフローの名前付近をクリックすると、

スクリーンショット 2025-10-26 21.30.54.png

公開状態の設定のモーダルが起動するので、公開URL欄右端のトグルをクリックして、無効にします。

スクリーンショット 2025-10-26 21.31.12.png

この状態で公開URLを叩くと、以下のようなエラーが出てアクセスできなくなってます(安心ですね。

スクリーンショット 2025-10-26 21.34.50.png

5. 他ツールとの連携

APIで他ツールと連携することも可能です。
APIキーの取得が必要なので、そのような使い方をする場合は取得しておきましょう。

APIシークレットキーの取得

左メニューの「APIアクセスをクリック」し(①)、画面右上の「APIキー」をクリック(②)

スクリーンショット 2025-10-26 21.38.00.png

「APIシークレットキー」モーダルが出現するので、「新しいシークレットキーを作成」をクリック。
スクリーンショット 2025-10-26 21.38.20.png

APIシークレットキーが表示されるので(①)、コピーして控えておきましょう(②)。
スクリーンショット 2025-10-26 21.38.30.png

APIシークレットキーは、機密情報ですので、取り扱いには十分注意しましょう。

終わりに

ノーコード、ローコードでできて、ラクチンに違いない、と思いきや、

  • Notionとの連携(インテグレーション設定に加え、個々のページで接続設定が必要と気づくのに時間がかかった
  • ナレッジベースの作成でのチャンク識別子設定
  • LLMノードのUSER欄の設定

あたりで、つまづいてめっちゃ時間がかかってしまった。。(先人の皆さまの記事に救われました。感謝、感謝です。

実用化するなら、

  • クラウド版でまずはProffesionalプラン(59USD/月)から使ってみる
  • セルフホストでCommunity版(利用料は無料)を使ってみる

のいずれかスタートで、利用状況に応じてアップグレードを検討するとかかなぁ。

あと、他ツールとの連携もやってみたので、近々記事にする予定です。
今回はここまで。

以下の2つの記事に分けてまとめました。

こちらもよろしければご覧ください。

参考

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?