Dify上のやりとりをNotionと連携してアウトプットする方法
Dify上でのやりとりは、Dify上では保存されています。
しかし、毎回Difyのアプリを開いたり、ノートアプリに転記するのがめんどくさかったりしませんか?
今回はNotionへのアウトプット方法をご紹介します。
なぜNotionにアウトプットするのか
Notionは既に多くの起業のデータベースや個人のKnowledge managementツールとして活用されていると思います。
特に、NotionはNotion AIの実装によって、検索能力やアイデア出しが可能となっています。
この状況から私はすべての情報をSecond Brainとして自分のNotionに保存しておきたいと考えています。
私の情報の流れは下記の通り
課題
DifyのやりとりをNotionにアウトプットする際につまずくポイント
NotionとDifyの連携
HTTP requestの書き方
時々生じるHTTP requestのエラー
だと思います。
この記事で可能になること
このようにYoutubeを英語学習教材として使用し、その結果をNotionで残しておくことができます。
Notionとの連携について
Notionとの連携方法については以前の私の記事を参照してください。
Notionへのアウトプットの2つの方法
以下からは、上記でNotionとの連携が可能になり、DifyでのChatflowまたはWorkflowを実行するとNotion上に何かしらのデータがうまく移行されたことを前提とします。
Notionへアウトプットする際には2つのモチベーションがあると思います。
1, 既存のページにLLMとのやり取りを残しておきたい
2, 既存のデータベース上にプロパティ込で新たにページを作成したい
既存のページにコンテンツを追加する方法
NotionへのアウトプットはHTTP requestを使用することになります。
<JSON>
{
"children":[
{
"object": "block",
"type": "paragraph",
"paragraph":{
"rich_text": [ { "type": "text", "text": { "content": "{TALK with LLM}" } }]
}
}
]
}
JSONコードとして、このように規定して{TALK with LLM}の部分に変数を指定しましょう。これで、{TALK with LLM}のテキストがNotion上に登録されます。
既存のNotionのpageのIDを下記の要領で抽出しています。
Start blockでNotion PageのURLの入力
code blockでNotion PageのURLからPage IDを抽出する
HTTP requestでPage IDを指定
Notion Page IDは例えば下記の場合
「c12~~ofb5」までがIDとなります。
既存のデータベース上に新規のページを追加する方法
次に上述の単語帳を自動で作成するような場合は下記のようなHTTP requestを使用します。
<JSON>
{
"parent": { "database_id": "{YOUR_DATABASE_ID}" },
"properties": {
"title": {
"title": [
{ "text": { "content": "{word}" } }
]
},
"meaning": {
"rich_text": [
{ "text": { "content": "{meaning}" } }
]
},
"example": {
"rich_text": [
{ "text": { "content": "{example}" } }
]
},
"pronunciation": {
"rich_text": [
{ "text": { "content": "{pronunciation}" } }
]
},
"URL": {
"type": "url",
"url": "{YOUTUBE URL}"
}
}
}
上記の{word}部分が変数となりますので、""は必須となることにご注意ください。
また、注意点としてはNotionのdatabaseのプロパティをJSON形式と齟齬が無いように設定してください。
私は、上記のテキスト・URL以外に、セレクトもうまくいくことを確認しています。
更に、Notion上にあるすべてのプロパティを指定しなければならない、というわけではなく、今回の場合、ステータスを未設定ですが、勝手にデフォルトステータスで登録されます。
Notion databaseのIDは
「b7b~~10c4」までとなります。
この使い方の場合は、Notionのdatabaseを一番上の階層に置いておくようにしてください。
HTTP request エラーの対処法
私が経験したエラーば下記のようなことでした
methodのPOSTとPATCHが間違えている
上記を参考に適切に設定してください
JSON部分で{}, []の数を間違えている
Cursorなどにコピペして見ると、数が足らなかったらエラーがでるので、下書きをする
JSON部分でテキストがJSON形式ではなかった
HTTP requestにいく前にJSON形式に変換するcode blockを置く
Dify側のAPI keyの設定忘れ、Notion側のpageのコネクト忘れ
HTTP requestが2000文字までなので、それを超えたためのエラー
分割してiterationを回して登録する
ここから先は
この記事が気に入ったらサポートをしてみませんか?