目次
はじめに
ディーネットのよろず請負人、深見です。
今回は、Difyの最新リリース v1.12.0 とそれに続くパッチリリース v1.12.1 の内容を詳しく解説します。今回のアップデートでは、知識ベースの検索精度を飛躍的に向上させる「Summary Index」機能が導入されたほか、多くの改善と重要なセキュリティ修正が含まれています。
🚀 v1.12.0 の主なハイライト
🌟 新機能:Summary Index(AI要約によるスマートな検索)
今回のリリースで最も注目すべきは、知識ベースの検索システムを大幅に強化する「Summary Index」機能の導入です。これは、文書の各チャンクに対してAIが要約を生成し、その要約を検索に活用することで、より正確な情報取得を可能にする画期的な機能です。
背景
従来のベクトル検索では、生データ(チャンク)の埋め込みのみに依存するため、長い文書や複雑な内容の場合、セマンティックなニュアンスや文脈を見逃す可能性がありました。Summary Indexは、この課題を解決するために、各文書チャンクの簡潔でセマンティックにリッチな要約を作成し、これを追加の検索レイヤーとして活用します。
主な機能
- AIによる要約生成:設定可能なLLM(大規模言語モデル)を利用して、文書チャンクの要約を自動生成します。これにより、必要な情報をコンパクトに抽出できます。
- マルチモーダル対応:GPT-4VやClaude-3といった視覚能力を持つLLMを使用する場合、文書チャンク内のテキストと画像の両方を取り込んだ要約を生成し、よりリッチな文脈理解を実現します。
- 検索精度の向上:要約ベクトルが追加の検索レイヤーとして機能することで、元のコンテンツとAI生成要約の両方に対してクエリをマッチングさせ、知識ベース検索の精度が向上します。
- 柔軟な設定:デフォルトの要約プロンプトをサポートしており、ドメイン固有の要約スタイルに合わせてカスタマイズが可能です。
- 非同期処理:要約生成は非同期で実行されるため、文書のインデックス作成が迅速かつブロックされずに処理されます。
- 手動での要約編集:AIが生成した要約を、必要に応じて手動で編集・調整し、ドメイン固有の用語や文脈に合わせて精度を高めることができます。
- インデックス構造の互換性:一般的なチャンク分割モードと、親子チャンク分割モードの両方で機能し、階層的な文書関係もインテリジェントに処理します。
- 高品質インデックスとの統合:「high_quality」インデックス作成技術を使用するデータセットでのみ利用可能であり、本番環境の知識ベースで最適なパフォーマンスを保証します。
その他の改善点
- Agent Appのマルチモーダル対応:Agent Appが画像やファイルといったマルチモーダル入力をネイティブでサポートするようになりました。
- Qdrantの全文検索:Qdrantベクトルデータベースにおいて、複数のキーワードをサポートする全文検索が実装されました。
- ワークフローの強化:ワークフローでコンテキストの登録と読み取りがサポートされ、単一実行のOpenTelemetryサポートが追加されました。
- プラグインシステム:プラグインアンインストール時にAPIキーを削除するか保持するかを選択できるようになりました。
- アプリテンプレートのプレビュー機能:アプリ作成前に、ワークフローグラフやアプリ設定を含む詳細なアプリテンプレートプレビューが表示されるようになりました。
🐞 バグ修正とセキュリティアップデート
v1.12.0では、多数のバグ修正と重要なセキュリティアップデートも実施されています。
セキュリティ
- LogstoreにおけるSQLインジェクション、シリアライゼーションの問題が修正され、初期化が最適化されました。
- WordExtractorのURLダウンロードにおけるSSRF脆弱性が修正されました。
- tanstack devtoolsがRCE脆弱性を修正するためにアップグレードされました。
- pdfminer.six、authlib、werkzeug、aiohttp、pycryptodomeのセキュリティアップデートが行われました。
ワークフロー&グラフエンジン
- 単一イテレーションまたはループノードが実行できない問題が修正されました。
- ターゲットノードがない場合のNextStepのクラッシュが修正されました。
- ToolInvokeMessageのUnion型解析の問題が修正されました。
API&バックエンド
/console/apiルートのCORSリソースパターンが修正されました。- IRISハイブリッド検索がゼロの結果を返す問題が修正されました。
- 課金アカウント削除に関する問題が修正されました。
- 親子セグメントの移行におけるvdb-migrateコマンドの問題が修正されました。
フロントエンド
- 「Expand all chunks」ボタンが機能しない問題が修正されました。
- フローティング要素の垂直スクロール対応が修正されました。
- URL値がNoneの画像をアップロードする際の検証エラーが修正されました。
⚙️ 設定変更
以下の新しい環境変数が追加または変更されました。
SANDBOX_EXPIRED_RECORDS_CLEAN_TASK_LOCK_TTL:サンドボックスの期限切れレコードクリーンアップタスクのロックTTLを設定します(デフォルト: 90000)。SMTP_LOCAL_HOSTNAME:SMTP HELO/EHLO中に使用されるローカルホスト名のオプションのオーバーライド。PLUGIN_MODEL_SCHEMA_CACHE_TTL:プラグインモデルスキーマのキャッシュTTLを設定します(デフォルト: 3600)。ENABLE_TRIAL_APP:トライアルアプリを有効にします(デフォルト: false)。ENABLE_EXPLORE_BANNER:Exploreバナーを有効にします(デフォルト: false)。
🛠️ v1.12.1 の主な修正点
v1.12.1は、v1.12.0で発生したいくつかの重要なバグを修正するためのパッチリリースです。
- DockerにおけるIRISデータの永続性改善:Durable %SYS を使用して、コンテナ再作成時にもIRISデータが永続化されるように改善されました。
- クライアントのベースURL修正:クライアントにおけるベースURLの問題が修正されました。
- 自動要約環境変数の修正:自動要約に関連する環境変数の問題が修正されました。
delete_draft_variables_batchの無限ループ修正:バッチ処理で無限ループに陥る可能性のある問題が修正されました。
📝 主な変更内容(抜粋)
v1.12.0とv1.12.1のリリースでは、多数のコミットが行われ、機能追加、リファクタリング、バグ修正、セキュリティ改善などが多岐にわたります。特に、Summary Index 関連のコミットや、複数のセキュリティアップデート(SQLインジェクション、SSRF、RCEの修正、多数のライブラリのアップデート)は注目すべき変更です。
v1.12.0の主な変更点(一部)
- fix: fix instance is not bind to session by @fatelei in #30913
- feat: inject traceparent in enterprise api by @wylswz in #30895
- fix(logstore): prevent SQL injection, fix serialization issues, and optimize initialization by @adongfan in #30697
- fix(deps): security updates for pdfminer.six, authlib, werkzeug, aiohttp and others by @kenwoodjw in #30976
- feat: implement document creation pipeline with multi-step wizard and datasource management by @CodingOnStar in #30843
- feat: summary index by @zxhlyh in #31523
- fix: SSRF in WordExtractor URL download (credit to @EaEa0001) by @BeautyyuYanli in #31678
v1.12.1の主な変更点(一部)
- fix(docker): persist IRIS data across container recreation using Durable %SYS by @TomoOkuyama in #31899
- fix: base url in client by @hyoban in #31902
- fix: auto summary env by @zxhlyh in #31930
- fix: fix delete_draft_variables_batch cycle forever by @fatelei in #31934
⚠️ アップデート時の注意事項
今回のアップデートは、特に「Summary Index」という新機能の導入と、多くのセキュリティ修正が含まれています。安定した運用のためにも、アップデート手順と注意事項をよくご確認ください。
📊 影響範囲の概要
| 項目 | 影響度 | 説明 |
|---|---|---|
| データベース | 中 | 新機能「Summary Index」導入に伴い、データベースのマイグレーション実行が必要。flask db upgrade で自動対応可能ですが、必ずバックアップを取得してください。 |
| API 互換性 | 低 | 既存 API との後方互換性は維持されています。ただし、一部バグ修正が含まれるため、既存のAPI連携が想定通り機能するか、簡単な動作確認を推奨します。 |
| UI/UX | 低 | 新機能の追加(Summary Index、テンプレートプレビュー)やUIの改善はありますが、既存の操作方法に大きな変更はありません。バグ修正により、より快適に利用できるようになっています。 |
| パフォーマンス | 中 | Summary Indexは非同期処理で設計されており、Qdrantの全文検索改善など、全体的な安定性や効率向上に寄与する修正が含まれています。大規模な知識ベースを使用している場合は、体感速度の向上が期待されます。 |
✅ アップデート前の確認事項
アップデート作業を行う前に、以下の項目を必ずご確認ください。
- 現在のDifyバージョンを確認し、変更履歴との照合を行う
- 万が一の事態に備え、データベース(volumesディレクトリ)の完全なバックアップ計画を策定し、実行する
- アップデート作業のための十分なメンテナンス時間を確保する
- アップデートによるサービス停止や機能変更について、関係者への事前通知を行う
🐳 Docker Compose を利用している場合のアップデート手順
-
カスタム設定ファイルのバックアップ(任意)
cd docker cp docker-compose.yaml docker-compose.yaml.$(date +%s).bak -
最新コードの取得
git checkout main git pull origin main -
既存サービスの停止
dockerディレクトリで以下のコマンドを実行します。docker compose down -
データのバックアップ
tar -cvf volumes-$(date +%s).tgz volumes -
サービスのアップグレードと起動
docker compose up -d
おわりに
今回のDify v1.12.0およびv1.12.1のリリースは、AIアシスタントの頭脳となる知識ベースの能力を大きく引き上げ、より賢く、よりセキュアなアプリケーション開発を可能にするものです。
特にSummary Index機能は、従来の検索精度の課題を解決する革新的な機能であり、マルチモーダル対応と組み合わせることで、さらに高度な情報検索が実現できます。また、複数のセキュリティ脆弱性の修正により、本番環境での安全性も大幅に向上しています。
ぜひ、これらの新機能を活用して、Difyでの開発体験をさらに豊かなものにしてください。
Difyは今後もコミュニティの声を反映しながら、継続的な進化を続けていきます。
次回のアップデートにもご期待ください!
参考リンク
本記事は Dify v1.12.0 および v1.12.1 のリリースノートを基に作成されています。最新情報は公式サイトおよび GitHub リポジトリをご確認ください。