DifyとGoogleスプレッドシートを連携させて、セルデータを取得してみた

technologies

おはようございます。ベンジャミンの木村です。

今回、AWSのBedrockでGoogleスプレッドシートのデータを使用する必要があったので、DifyとGoogleスプレッドシートの連携を行いました。

その連携の設定方法について、説明していきたいと思います。

設定すれば、下記図のようにDify上でセル範囲を指定するだけで、その範囲の値を簡単に取得できるようになりますので、ぜひご覧いただければと思います

1. 事前準備

1-1. Difyアカウントの準備

こちらは下記記事が大変わかりやすいので、ご参考にしていただければ幸いです。

ノーコードツール「Dify」の登録方法を分かりやすく解説します!

https://note.com/nocode_dev/n/ne03de4beb66b

1-2. スプレッドシートの権限について

こちらはDifyからAPI連携を行うため、サービスアカウントのメールアドレスを登録する必要があります。連携するスプレッドシートは作業者に管理者権限が必要になりますので、ご確認ください。

変更が必要な場合は、下記記事が大変わかりやすいので、ご参考にしていただければ幸いです。

Googleスプレッドシートの注意点とオーナー変更方法

https://www.tk-1.co.jp/tech_blog/google/google-spreadsheet.html

1-3. Difyのワークフローについて

今回、Difyのワークフロー上でスプレッドシートの連携ブロックを作成します。Difyのワークフロー作成については、下記記事が大変わかりやすいので、ご参考にしていただければ幸いです。

Dify入門ガイド:ワークフロー構築&ブロック紹介

https://tech-lab.sios.jp/archives/45587

2. DifyとGoogleスプレッドシートを連携させる

2-1. Difyにログインし、右上の「プラグイン」をクリックする

2-2. 「マーケットプレイスを探索する」をクリック → 「google_sheets」と検索 → google_sheetsの「インストール」をクリックする

2-3. 表示された画面で「インストール」をクリックする

2-4. 「プラグイン」 → 「google_sheets」 → 「取得方法」をクリックする

2-5. 利用規約をクリックし、「同意して続行」をクリックする

※最新情報に関する通知メールは希望があればでOKです。

2-6. 左ペインの「ライブラリ」をクリックする

2-7. 「Google Sheets API」をクリックする

2-8. 「有効にする」をクリックする

2-9. 「認証情報」→「認証情報を作成」をクリックする

2-10. 「サービスアカウント名」に任意の名前を入力し、「作成して続行」をクリックする

※「認証情報の作成」からこの画面に遷移しますが、「IAMと管理」→左ペインの「サービスアカウント」→「サービスアカウントの作成」からでもこの画面に遷移できます。

2-11. ロールに「オーナー(もしくはビューでもOK)」を選択し、「続行」をクリックする

2-12. Principals with accessは何も入力せずに、「完了」をクリックする

2-13. サービス アカウントの欄にメールアドレスが発行されるので、こちらも控える

2-14. サービス アカウントの欄の右側のペンのアイコンをクリックする

2-15. 「鍵」タブ → 「キーを追加」 → 「新しい鍵を作成」をクリックする

2-16. キータイプで「JSON」を選択し、「作成」をクリックする

作成ボタンをクリックすると、ローカルに認証情報のJSONが払い出されます。

2-17. Difyの画面に戻り、先ほどの項番2-16で取得したJSONファイルの中身をすべて認証情報JSONのフォームに貼り付け、「保存」ボタンをクリックする

2-18. データを取得したいGoogleスプレッドシートに移動し、「共有」をクリック → 項番2-13で控えたメールアドレスを「閲覧者」で共有する

2-19. Difyのワークフローの画面に移動し、ブロックの追加ボタン(+ボタン)をクリック → 「ツール」→ 「Googleスプレッドシート」 → 「Batch Get」をクリックする

2-20. フォームに下記の通り値を入力する。

  • Spreadsheet ID
    • 連携させるスプレッドシートのIDを入力します。
    • ※スプレッドシートのIDはスプレッドシートのURLに記載があります。以下例の赤文字部分を記載ください。
      • 例)https://docs.google.com/spreadsheets/d/<SpreadSheet ID>
  • Ranges
    • スプレッドシートから取得したデータの範囲を記載します。
      • 例) [“B3:C”]
  • DATATIME RENDER OPTION
    • 日付や時間のデータをどのように取得するかを指定します。
      • SERIAL_NUMBER:日付や時間をシリアル値(数値)で取得します。※デフォルト
        • 例) 44561.5(2022年1月1日12:00)
      • FORMATTED_STRING:スプレッドシートの表示形式に従って文字列で取得します。
        • 例) 2022/01/01 12:00
  • MAJOR DIMENSION
    • 取得するデータの構造(行単位または列単位)を指定します。
      • ROWS:データを行単位で取得します。※デフォルト
        • 例) [[1, 2], [3, 4]]
      • COLUMNS:データを列単位で取得します。
        • 例) [[1, 3], [2, 4]]
  • VALUE RENDER OPTION
    • セルの値をどのように取得するかを指定します。
      • FORMATTED_VALUE:セルの表示形式に従って値を取得します。※デフォルト
        • 例:$1,000
      • FORMULA
        • セルに入力されている数式を取得します。
          • 例:=SUM(A1:A10)

※複数シートがある場合、指定されるセルは最初のシートだけになってしまいます。他のシートを参照する場合は、下記の記事の「補足2:同じファイル内で別シートの単独セルを参照する場合」が範囲指定の仕方をわかりやすく説明してくれていたので、こちらを参考にRangeを書き換えてください。

スプレッドシートで別シートを参照・集計する方法! IMPORTRANGE関数で簡単にファイル間のデータを参照

https://allabout.co.jp/gm/gc/488144/

3. DifyとGoogleスプレッドシートの連携テスト

3-1. Googleスプレッドシートのブロック(Batch Get)の「▷」ボタンをクリックする

3-2. 「実行開始」ボタンをクリックする

3-3. ステータスがSUCCESSで、目的のJSONが取得できれば連携完了

まとめ

いかがでしょうか?

今回はDifyとGoogleスプレッドシートの連携方法を記載しました。

Difyのプラグインを使えば、他にもGoogleドライブや、GitHubやNotionなんかとの連携も可能ですので、それらツールを組み合わせて、AIにデータを食わせて活用すれば、AIの活用の幅が増えるのではないでしょうか?

ご参考にしていただけますと幸いです!

Related posts