🔧
difyのdropboxツールのファイルダウンロードを試す
Difyを開発しているLangGeniusが下記のツールをリリースしていたので、APIに親しんでいない方でも使えるなと思い、試してみました。
ファイルダウンロードとは
ファイルの概要(ファイル名、サイズなど)だけでなく、「内容を含める」ことができ、ファイルの内容を取得できます。
「内容を含める」を使いたいケース
Difyでは入力フィールドとしてファイルを指定できます。これを使ってファイルをアップロードし、LLMにファイルの情報を取り込ませることで、様々な加工ができます。
ただ、ファイルが一箇所に集約されている場合、「ファイルをアップロードする」事が手間です。
こんな場合です。
- 生徒が書いたレポートをある場所にアップロードしてもらい、内容を分析する
- 製品への問い合わせ時に、画像ファイルをアップロードしてもらい、その画像を解析する
- 複数人で書いた議事録をアップロードしてもらい、LLMを使って文体の統一された議事録に仕上げる
「内容を含める」は使えるか
内容が64KBまでのファイルしか読み取れない
大きいファイルを読み取ろうとしたときに「failed to read response body: bufio.Scanner: token too long」というエラーが発生しました。
64BKBに収まるファイルを読み取るだけであれば対応できる or 64KBを超えたらAPIで処理すれば対応できそうです。
...「APIを使う」辺りで、当初の「APIに親しんでいない方でも」という目論見は破綻してしまいました。
今回組んだワークフロー
実装時の注意点
1. Dropboxツールノードのファイル一覧の設定
フォルダの名前は /
(スラッシュ)から始める必要があります。
フローの最初にフォルダ名を入力させる場合、スラッシュから入力する人は稀なので、prefixとして/を入れておくとよいです。
2. Dropboxツールノードのファイルダウンロードの「内容を含める」設定
「内容を含める」のところに true
と入力していますが、booleanで判断しているようなので、trueと判断される文字列であれば何でもいいです。
3. コード実行ノードの出力変数の設定
dictで出力して変数と紐づけるところがわかりにくいので記載します。
Discussion