DifyGemini生成AI

【Dify×Notionで作るレシピ管理システム】レシピ検索・買うものリスト登録編

Dify

Power Platformとは全く関係ないですが、たまには他のツールも触ってみようということで生成AIを用いたワークフローが簡単に作れるDifyと、神タスク管理ツールであるNotionを連携させてレシピ管理システムを一日で作成したので備忘的に内容を説明します。

前回のレシピ登録機能に続いて、今回はレシピ管理システムの重要な機能である「レシピ検索」と「買うものリスト登録」機能について詳しく解説します。

実行結果

材料やレシピの単語を入力するとNotionからレシピを検索してくれます。

材料一覧を入力すると買うものリストにまとめて登録します。

レシピ検索機能の概要

レシピ検索機能は、ユーザーが入力したキーワードや条件に基づいて、Notionデータベースに保存されているレシピを検索し、その結果をLLMで整形して適切な結果を返します。

Notion検索用HTTPリクエスト

GETかと思いきやPOSTだったのでちょっとハマりました。

POSThttps://api.notion.com/v1/databases/[NOTION_DATABASE_ID]/query
AuthorizationBearer [NOTION_API_KEY]
Content-Typeapplication/json
Notion-Version2022-06-28
ボディnone

参考→Notionのテーブルビューからデータを取得する【Python, Notion API】 #備忘録 - Qiita

検索結果解析用LLMノード

検索した結果をLLMで解析し、ユーザーへ出力します。

材料登録機能の概要

材料登録機能は、ユーザーが入力したレシピの材料を買うものリストという別のNotionデータベースに登録します。

材料抽出用LLM

入力された材料一覧をLLMで整形します。

アレイに変換

入力された材料一覧のテキストをアレイに変換して、イテレーション(繰り返し処理)できるようにします。

イテレーション

イテレーションを用いてHTTPリクエストを材料ぶん実行します。

参考→Difyにiterationが追加されたので使用感を確かめる

買い物リスト登録用HTTPリクエスト

繰り返し処理のアイテムを取るにはitemを変数として設定します。
エラーっぽい表示になりますが、普通に動きます。

POSThttps://api.notion.com/v1/pages/
AuthorizationBearer [NOTION_API_KEY]
Content-Typeapplication/json
Notion-Version2022-06-28
ボディ以下に記載
{
  "parent": { "database_id": [NOTION_DATABASE_ID] },
  "properties": {
    "Name": {
      "title": [
        {
          "text": {
            "content": "材料名"
          }
        }
      ]
    }
  }
}

まとめ

これで一通り機能紹介は終わりです。今後も実際に使いながら機能追加したり修正したりすると思います。

みなさんも参考にDifyで遊んでみましょう!

コメント

タイトルとURLをコピーしました