📚

LangflowとNotion連携について 〜コンテンツ生成編〜

に公開

今回は、Langflowを利用して、Notionのページ内にコンテンツを生成させる方法についてまとめてみようと思います。Langflowの使い方については以前以下の記事で解説していますので併せてご覧ください。

https://zenn.dev/akasan/articles/6357f1dd2b52ac

早速使ってみる

環境の立ち上げ

今回も以前と同様に、公式が提供しているdockerを利用します。簡単な起動方法は以下になります。

  1. 公式GitHubのレポジトリをcloneする
  2. docker_exampleフォルダに移動する
  3. docker compose upを実行する
  4. http://0.0.0.0:7860にアクセスする

起動が完了してhttp://0.0.0.0:7860にアクセスし、以下のような画面が表示されれば成功です。

コンテンツを生成するNotionページを作成する

LangflowとNotionを連携するにはNotion側の設定が必要になります。おおまかな手順としては以下になります。

  1. 連携したいNotionページを作成する
  2. NotionページのIDを取得する
  3. Notionページに対してLangflowのインテグレーションを作成し、シークレットキーを発行する

それでは順に見ていきます。

Notionページを作成する

こちらは通常通りNotionページを作成してください。今回はNotionとLangflow連携してみたというタイトルで新規ページを作成しました。

NotionページのIDを取得する

NotionページのIDの取得方法ですが、以下の手順で対応可能です。

  1. Notionページの共有リンクを取得する
  2. リンクの中から特定の場所にある32文字の部分を取り出す

まず共有リンクですが、以下のように画面右上の共有からリンクをコピーで取得できます。

私の場合、リンクを取得するとhttps://www.notion.so/Notion-Langflow-1f55e...7fb485f?pvs=4のようになりました(念の為一部省略しています)。このリンクの中で、タイトルの後から?pvsの直前までの文字列32文字がIDとなります。つまり、今回の私の例では1f55e...7fb485fとなります。このIDが後ほど必要になりますので控えておいてください。

Langflowインテグレーションの設定

最後にNotionページに対してLangflowインテグレーションを設定する必要があります。以下の手順で実行できます。

  1. Langflowインテグレーションのためのシークレットを発行
  2. 作成したインテグレーションをページと紐付ける

まずインテグレーションの作成方法について解説します。
まず画面左上のユーザアイコンをクリックすると以下のような表示になるので設定を選択します。

左のメニューに接続とあるのでそちらを選択し、画面中央のインテグレーションを作成または管理するを選択します。

選択すると以下のような画面が表示されます。表示されたら新しいインテグレーションを選択します。

すると以下のように入力画面が表示されますので、必要な情報を設定します。今回は以下のように設定しました。

  • インテグレーション名:Langflow-Integration
  • 関連ワークスペース:ページを作成したワークスペースを選択
  • 種類:内部

設定が完了したら保存を押してください。

設定が完了すると以下のような画面に映ります。内部インテグレーションシークレットの項目についてシークレットが設定されるので控えておいてください。

最後に、今作ったインテグレーションをNotionページに紐付けます。Notionページに戻っていただき、画面右上の3点リーダーから接続を選択して先ほど作ったインテグレーション名のLangflow-Integrationを選択してください。

Langflowでフローを作成する

それではLangflowでフローを作成しましょう。

まずはBlank flowとして新しいフローを作成してください(作成方法は前回の記事を参照ください)。

今回使用するコンポーネントは以下になります。

  • Chat Input / Chat Output
  • Agent
  • NotionバンドルのAdd Content to Page

それぞれ画面にコンポーネントを設定して以下のように結線します。

次にコンポーネントの設定をしていきます。

Agentの設定についてはこちらも前回の記事を参照ください。Agent Instructionsについては以下のように変更しました。

You are a helpful assistant that can use tools to answer questions and perform tasks. Please write your anwer into Notion Page.

次にNotionのコンポーネントの設定をします。Notion Secretにはインテグレーションで作成したシークレットキーを貼り付けてください。これで準備は完了です。

※ PageやBlock IDを指定する箇所があるのですが、こちらに記載して実行してもうまく連携されないことが確認されたので、IDについてはチャットから与えるようにしています。

使ってみよう

今回は、俳句を作らせてページに登録してもらいましょう。

画面右上のPlaygroundを開いてもらい、以下のようにチャットを入力します。

10この俳句を作ってください。

NotionページID:1f55e...7fb485f

するとPlayground上では以下のような表示になり、無事作れたということでNotionページを見ると確かに登録されていることを確認できました(なぜか重複はありますが、、、)。

まとめ

今回はNotionの連携機能を利用してLangflowからページのコンテンツを書き込むテストをしてみました。今回は既存のページの内容更新だけですが、実際にページを作成したりユーザリストを取得したりできるので、今後それらについても試してみようと思います。

Discussion