「Dify × Notion連携」Difyの出力をNotionに保存するワークフローを作ってみよう! 〜最強のセカンドブレイン構築!〜
Difyがアップデートを重ね、どんどん便利になっていきますね。
ありがたや。
今からDifyを始めて、機能が増えるのを楽しめるくらいにキャッチアップしていくのがおすすめです!
今回は、少し前にXで投稿して多くの反響をいただいた「DifyとNotionのAPI連携について」を解説していこうと思います!
(2024/10/14更新) DifyワークフローとLINEの連携についての解説を追加
下記のXでの投稿と同じ実装を有料コンテンツとして追加しました。
Difyで作成したワークフローをLINEのUIから使用することができます!
どんな内容?
上記、動画の動作を実現するための記事です。
Difyの出力をNotionの新規ページとして出力する方法を解説していきます。
今回の記事のポイントはLLMからのMarkdown出力を、そのままNotionのページにも反映している点です!
詳細は後述しますが、見出しやリスト、コードブロック、トグルなどに対応しています。
また、Notion API側の1リクエスト100ブロック制限にも対応しているので長文テキストだとしても出力が可能になっています。
また、Difyのワークフロー構築方法やAPIを使用した外部サービスとの連携(今回はLINE)についての学びにつながるような記事になればと思っています。
Notionと連携したら何が良いの?
いろんな利点はあるんですが、
そもそもなぜこれを作ったかというと、LLMの有益なアウトプットを検索、編集、蓄積、共有したいと、思ったからです。
Notion自体が言わずもがな素晴らしすぎるサービスです。笑
LLMと対話して役に立った出力を、未来の自分のために再利用可能な知識として編集したり、蓄積する。
またDifyでは現状できない共有や検索もNotionとの連携で可能になります。
また詳細は別の記事にしようと思っていますが、おとよさんが開発されているN2Bやastro-notion-blogという素晴らしいものがありまして。
Notionのページをそのままブログとして公開することができます。
と、いうことは…今回の連携ができることでブログの自動更新の夢も見れるかもしれません。笑
今回の記事も無料と有料の二部構成にしました
前回のスライド自動生成の記事もですが、今回も無料部分と有料部分に分けて書くことにしました。
無料部分では、DifyとNotionの連携の仕組みとポイントを紹介します。
LLMを使いこなせてプログラミングにもチャレンジして見たい人に必要な情報がお届けできればと。これでできる方は今回の記事の内容は無料で手に入ることになります。笑
有料部分では、必要なDSLファイルを配布します。
解説通りに設定していただければ動画と同じものがご自身の環境でも使えるようになります。
その上で、Notionと連携しているスクリプトの解説や設定方法と、個人的に活用しているフローのDSLファイルも配布します。
では、記事の内容に入っていこうと思います!
Dify × Notion連携の仕組み
Notionは「API」を公開してくれており、これを使うことで今回の連携を実現しています。
エンジニアではない方には聞き慣れないかもですが、この「API」という仕組みがDifyととても相性が良いのです。
Difyを活用するアイデアに困った時は、普段よく活用しているアプリやサービスが「API」を提供しているかを調べるのがおすすめです。
Difyから扱いやすいのは基本的にWebAPIという種類のAPIになります。
これが提供されているなら、Difyとそのツールを連携することができ、それがDifyを活用するアイデアの種になるのです。
APIを使ったNotion連携の考え方
まず「DifyとNotionの連携をしたい!」を実現するために、APIでそれが可能なのかを調べます。(これは連携したいもの違っても同じです。)
調べるといっても、もはやLLMが存在してくれている世界線なので、AIに聞くのが手っ取り早いです。
今回ご紹介するツールもClaudeやGemini、Cursorを多分に使って実装しております。
なので勘所さえわかって、チャレンジする気持ちさえあれば、同じように実装可能です!
実装の勘所
勘所をリストアップしていきます。
レイヤーがバラバラですがご自身で実装にチャレンジしてもらうために必要な内容を網羅したつもりです!
Dify側でNotion APIへ接続する選択肢として、コードブロックとHTTPリクエストブロックがある。
(ぼくはコードブロックを採用してPythonスクリプトで実装しました。)
LLMを駆使して、Notion APIへ「新規ページ作成・テキスト追加」するスクリプトを作成する。
「新規ページ作成・テキスト追加」するスクリプトをDifyで実際にテスト。まずはとにかく小さく実装して、テストして、成功するがポイント!
Notion APIと接続する場合、Notionのインテグレーションの設定が必要になる。
Notion側での「コネクトの設定」と、Dify側で「API Key」や「DB ID」の設定を忘れずに!
「新規ページ作成・テキスト追加」が成功したら、LLMが出力するマークダウン形式のテキストを追加できるようにLLMに指示してスクリプトを修正・テストする。
対応させたいマークダウンをテストをしながら追加していく。
リスト、数字リスト、コードブロック、テーブル、引用ブロック、リンクなどの表示に必要に応じて対応させていく。
Notion APIの制限で、一度に100ブロックまでの書き込み上限がある。
そのため必要であれば、100を超えたブロックを追加したい場合にも対応できるように実装を追加する。
もろもろ必要な機能がDifyから動作確認できたら、ワークフローをツールとして追加してDifyから汎用的に利用できるように最終調整。
まとめ
DifyとNotionをAPI連携するための勘所を中心にお話しさせていただきました。
技術やプログラミングへの理解がないと難しく感じる部分もあると思いますが、今回のテーマで、AIを使ったプログラミングにもチャレンジしていただくきっかけになればとも思っています。
学ぶ上で困ったらAIに聞けことは本当に革命的です。
ぜひご自身でもチャレンジしていただけたら嬉しいです!
と、言いつつ、
有料部分ではさくっと実装できるようにDSLファイルも配布し、解説をしています。
まず自分の環境で動かしてみて学びたいという方は、こちらもご検討いただければと思います^^
また、Dify Labというオープンチャットコミュニティを運営しています。
現在500人近い方が参加してくださっており、DifyやAIについてさまざま議論できるコミュニティです!
もしご興味あればぜひご参加ください^^
有料記事の注意事項
有料部分で紹介しているチャットフローにはDify 0.7.0以降のバージョンが必要です。
→ 0.7.0から追加されたConversation VariableとVariable Assignerブロックを使用した内容となっています。想定できていないエラーが発生する場合がございます。
→ 想定しきれていなかった利用によってエラーが発生する場合がございます。自分でも利用しているの続けて記事アップデートを行う予定ですが、完全な動作を保証するものではないことをご理解の上ご購入ください。
またエラー等ありましたらXのDMにてご連絡いただけましたら幸いです。
可能な範囲でにはなってしまいますが対応させていただきます。記事のご返金は不可となっております。
→ 記事のご購入は自己責任とさせていただいております。期待と違った等あった場合もご返金ができないことご了承の上ご購入ください_ _LLMブロックを使用するためAPI使用料がかかります。
→ 配布しているDSLファイル内のLLMブロックのモデル選択はご自身の環境にあったものに変更していただいて問題ありません。使いやすいものを選択いただければと思いますが、性能の低いモデルの場合意図した性能が出ない場合がありますのでご注意ください。この記事中のテストはGPT-4o miniを使用して行なっております。
有料部分のもくじ
Dify×NotionのメインDSLファイル・解説
チャットフロー型ナレッジ開発DSL・解説
→ Dify 0.7.0で実装されたConversation VariableとVariable Assignerを使用して実装しています。toNotionを使いこなすために
「賢者たちとの対話」ワークフロー(未完成ながら簡易公開)
→ 現在試験中ですが、動く状態のDSLを公開いたしました。
ぜひお試しください。DifyワークフローとLINEの連携(GASを使用)
有料部分では、一発出力を行う基本のワークフローと、LLMと双方向のやり取りをして最終的な出力をNotionにナレッジとして書き込むためのチャットフローを公開・解説していきます。
Dify×Notionの機能は以下の通りです。
マークダウンテキストをNotionブロックに変換
Notion APIへのデータ送信
様々なマークダウン記法のサポート:
- 見出し: #, ##, ### を使用した見出し
- 段落: テキストブロック
- リスト: 番号付きリストと箇条書きリスト
- 引用: > を使用した引用ブロック
- コードブロック: ``` で囲まれたコードブロック
- テーブル: | で区切られたテーブル
- トグル: <details> と <summary> を使用
- インラインスタイル: 太字、斜体、取り消し線、コード、リンクコードブロックのシンタックスハイライト
Notion APIの100ブロック制限を回避
Dify自体かなり便利すぎるツールですが、Notionの便利さも掛け合わせて最高のAI環境を構築していきましょう!!
ここからは、有料部分となります。
ここから先は
この記事が気に入ったらチップで応援してみませんか?