GitHub Repo
Difyコミュニティ、ナレッジベース間で共有される添付ファイルの誤削除を報告
10月20日のDifyコミュニティ報告によると、ナレッジベースのデータセットを削除すると、クリーンアップ処理によって別のデータセットが使用中の添付ファイルまで削除される可能性があります。修正案にはデータセットをまたぐ参照チェックが追加されていますが、まだマージされておらず、正式版およびクラウドサービスへの影響範囲は未確認です。

Difyのナレッジベースのクリーンアップ処理について、添付ファイルの消失につながる可能性があるというコミュニティ報告がありました。10月20日に提出されたissueによると、同じワークスペース内の2つのデータセットが同じアップロードファイルを参照している場合、片方のデータセットを削除すると、もう片方が引き続き必要とするファイルのレコードとストレージ上のオブジェクトまで削除される可能性があります。この報告はセルフホスト版のソースコード、ブランチ main、コミット 638ed4e を基にしており、プロジェクトのSQLiteテスト環境を使った再現手順も添えられています。issueと再現条件
問題は添付ファイルのライフサイクル管理にあります。再現ケースでは、まず UploadFile を作成し、データセットAとBからそれぞれ SegmentAttachmentBinding を介して参照します。Aのクリーンアップ時、_delete_attachments はAのバインディングだけを選択しますが、対応するファイルと基盤となるオブジェクトをそのまま削除します。そのため、Bのバインディングは残っていても、実際の添付ファイルはすでに失われています。つまり、クエリ対象を特定のデータセットに限定するだけでは、複数のデータセットで共有されるリソースを保護できません。技術報告
この種の不備は、マルチモーダルRAGの入力の完全性に影響する可能性があります。Difyの公式ドキュメントによると、ナレッジ検索の結果はテキストチャンクに加え、files フィールドを通じて画像添付ファイルを渡し、視覚機能を有効にした下流モデルで読み取ることができます。したがって、テキストと参照関係が残っていても、元の画像が削除されれば、モデルが取得する参照資料が不完全になる可能性があります。実際に影響を受けたクエリ数を定量化できる公開情報は、現時点ではありません。公式の検索ドキュメント
同日に提出された修正案では、削除対象のデータセット以外に添付ファイルのバインディングが残っているかを確認してから、アップロードファイルを削除するよう変更されています。また、埋め込み画像とアップロード元ファイルのクリーンアップ経路も対象です。作者によると、関連する単体テスト35件はすべて成功しましたが、確認時点で提案はまだオープンであり、正式な修正とは見なせません。今後は、メンテナーのレビュー、削除処理のエンドツーエンドテスト、修正が取り込まれるバージョンを確認する必要があります。また、削除済みのストレージオブジェクトを復元できることを示す証拠は、現時点でありません。修正提案と検証記録