【Dify実践編】大量ファイルを瞬時に整理!リスト処理ブロックで作る「爆速自動仕分け機」第36話

サイバーパンクな雰囲気の工場で、AIを搭載した多脚ロボットが大量の書類をスキャンし、3つのコンテナ「カテゴリA」「カテゴリB」「カテゴリC」へ自動で仕分けているイラスト。画像下部には「第35話 ファイルの山をAIが仕分け?リスト処理で自動分類を攻略」という日本語のタイトルテキストが入っている。 Uncategorized

「前回の記事で、リスト処理ブロックの概要はお分かり頂いたと思います。

今回は、リスト処理ブロックの真骨頂である**「並列フィルタリング」**を使って、爆速でファイルを仕分けるアプリを一緒に作っていきましょう!


今回のゴール

バラバラにアップロードされた複数のファイルを、拡張子(.pdf や .png)ごとに自動で仕分け、整理された状態で出力するアプリを構築します。

STEP 1:開始ブロックで「大きな箱」を用意する

まずは、仕分けたいファイルをまとめて受け取る入り口を作ります。

  1. 開始ブロックを開きます。
  2. 入力フィールドを追加し、型を Array[File](ファイルのリスト)に設定します。
  3. 変数名は files としておきましょう。
Difyの入力フィールド編集画面でファイルリストを選択し、サポートするファイルタイプに音声を指定する設定手順の解説画像

STEP 2:魔法の網「リスト処理」を設置する

ここが今回のメインディッシュです。リスト処理ブロックを「1つずつの拡張子専用の網」として設定します。

  1. 開始ブロックの次に 「リスト処理」 ブロックを追加します。
  2. 入力変数{{#start.files#}} を指定します。
  3. フィルター条件ON に切り替えます。
  4. 変数の選択: 左側の入力欄で {{#リスト処理 1.item.name#}} を選びます。
    • item の横にある > をクリックすると name が出てきます。
  5. 演算子: 「で終わる (Ends with)」を選択します。
  6. 値: 右側の空白に .pdf と入力して確定させます。

これで「PDFだけを捕まえる網」が完成です!

Difyのワークフロー画面。リスト処理ノードのフィルター条件設定で、ファイル名が「.pdf」で終わるものを抽出する指定手順の解説画像

STEP 3:網を並列に増やして仕分け口を作る

PDF以外も仕分けたいですよね? Difyなら「横に並べる」だけでOKです。

  1. キャンバス上で、先ほどの「リスト処理 1」の下に、同じ設定の 「リスト処理 2」「リスト処理 3」 を配置します。
  2. それぞれ開始ブロックから線を繋ぎ、フィルターの「値」だけを書き換えます。
    • リスト処理 2: .png (画像用)
    • リスト処理 3: .docx (Word用)

このように並列(横並び)にすることで、すべてのファイルを同時にチェックする爆速フローが出来上がります。


STEP 4:出力(End)ブロックで集約する

最後に、仕分けられた結果をユーザーに返します。

  1. 終了(End)ブロックを配置し、すべてのリスト処理ブロックから線を繋ぎます。
  2. 出力変数を作成し、各リスト処理の結果を紐付けます。
    • 例:pdf_files{{#リスト処理 1.result#}}
    • 例:image_files{{#リスト処理 2.result#}}
Difyの出力ノード設定画面。複数のリスト処理ノードからの結果を、出力変数(result, result_1, result_2)として統合する設定手順。

実践の総仕上げ:テスト実行!

右上の「テスト実行」から、PDFや画像を混ぜてアップロードしてみましょう。

実行結果(Result)画面で、ファイルが種類ごとに綺麗に分かれて表示されたら大成功です!


💡 トラブル解決!「変数が出ない」時のチェックリスト

もし設定中に行き詰まったら、ここを確認してください。

困ったことチェックポイント
右側の入力欄が出ない左側の変数で name(テキスト型)を選んでいますか?
itemが見当たらない反復ブロックと違い、リスト処理ブロックではフィルター設定の中に item が隠れています。
何も出力されないフィルターの値に .(ドット)を忘れていませんか? .pdf と正確に入れましょう。

まとめ:イテレーションとの使い分け

  • イテレーション(反復): ファイルの中身を1つずつ「加工(翻訳・要約)」したい時。
  • リスト処理: 大量のファイルを「一瞬で整理・分類」したい時。

チャットGPTはすぐに使用制限が来てしい、ジェミニはDifyのアプリ作成についてはまだまだという感じで結構騙されます。時間がかなりかかって上手く作れないので今回はめっちゃシンプルにしました。きっともっとちゃんとした良いアプリが作成できると思いますが、まずは手始めにってことで。次回のお題は考え中です。是非お楽しみに!

コメント

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