Dify 三昧:【リリース情報】Dify v1.14.0 リリース!ワークフローコラボレーションとHITL APIを徹底解説

A### はじめに

Difyをご利用・ご検討中の皆さん、こんにちは! ゴールデンウイークに突入し、いかがお過ごしでしょうか?
ディーネットのよろず請負人、深見です。

Dify の最新バージョン v1.14.0 がリリースされました。今回のアップデートでは、チームでの開発を強力にサポートする「ワークフローコラボレーション」や、人間参加型(Human-in-the-loop, HITL)のワークフローをより柔軟に構築するための「サービスAPI」が目玉となっています。他にも多数の改善と修正が含まれていますので、早速詳しく見ていきましょう!

🚀 What's New in v1.14.0? - 新機能の徹底解剖

1. ワークフローコラボレーション機能でチーム開発が加速!

Dify v1.14.0 の最大の注目点は、ワークフローコラボレーション機能の導入です。これは、複数のワークスペースメンバーが同じワークフローを同時に編集できる画期的な機能です。

  • リアルタイム同期: グラフの更新がリアルタイムで同期され、チームメンバー間の作業状況が一目でわかります。
  • プレゼンス表示: 誰がどの部分を編集しているか、オンラインプレゼンスで確認できます。
  • 共有された可視性: チーム全員がワークフロー全体を把握しやすくなります。

dify-028-001

セルフホスト環境での有効化:
セルフホスト環境では、このコラボレーション機能はデフォルトで無効になっています。以下の環境変数を設定することで有効にできます。

ENABLE_COLLABORATION_MODE = true
SERVER_WORKER_CLASS = geventwebsocket.gunicorn.workers.GeventWebSocketWorker
NEXT_PUBLIC_SOCKET_URL = あなたのデプロイのWebSocket URL (例: wss://dify.example.com)

この機能により、ワークフローの共同開発における生産性が大幅に向上すること間違いなしです。

詳細については、  こちらをご参照ください

2. Human-in-the-loop (HITL) のサービスAPI

HITL(Human-in-the-loop)は、AIの判断に人間の介入を組み込むことで、より正確で信頼性の高いワークフローを構築するための機能です。今回のリリースでは、既存のコンソールでの操作に加え、サービスAPIでのHITLのプログラムサポートが追加されました。

これにより、開発者はHITLフローをより柔軟に、そしてプログラム的に制御できるようになり、複雑なビジネスロジックへの組み込みが容易になります。

3. MCP(Model Context Protocol)とプラグインの強化

MCP とプラグイン周りにも多くの改善が施されました。

  • MCPツールメタデータの更新: ツールに変更があった際にUIが適切に同期されるよう、メタデータの更新機能が改善されました。
  • MCPサーバーURLの修正: OAuthや認証に影響を与えかねない /v1 の重複問題が修正されました。
  • MCP OAuthの安全性向上: 不正な形式のJSONを安全に処理できるようになりました。
  • MCPスキーマ公開の改善: チェックボックスやJSONオブジェクト型が正しくマッピングされるようになりました。
  • プラグインの自動アップグレード戦略: 自動アップグレード戦略の永続化、ローカルインストーラーとファイル入力の挙動、テナントスコープでの内部APIエンドユーザー検索など、多岐にわたる改善が行われました。

4. マーケットプレイスとOAuthの修正

マーケットプレイスのフローとOAuthサインインに関する修正が行われました。特に、GitHub OAuthでメールアドレスがnullになるようなエッジケースも対処されており、ユーザー体験の向上が図られています。

5. UIキットとフロントエンドプラットフォームの改善

ユーザーインターフェース (UI) とフロントエンドの基盤も大幅に強化されました。

  • @langgenius/dify-uiの導入: PreviewCardMeter といった共有のプリミティブ、デザインシステムが導入され、UIの一貫性と開発効率が向上しました。
  • アクセシビリティの向上: 日付/時刻ピッカー、自動更新戦略ピッカー、プラグインやモデルセレクターのスクロールバーなど、様々なUIコンポーネントでアクセシビリティが改善されました。
  • Goto Anything機能の強化: 最近の項目、/go コマンド、アプリケーションのより深いサブセクションへの移動など、検索とナビゲーション機能が向上しました。Cmd+Kでの問題ある動的インポートも修正されています。
  • プロンプトエディターの機能強化: スラッシュでトリガーされる変数フィルタリングや、変数リストでのキーボード上下移動がサポートされました。
  • フォローアップ質問の改善: 提案される質問の設定とトークン制限が改善されました。
  • モーダルの共通化: ApiKey やプロバイダー設定などのモーダルが、共通の Dialog パターンにリファクタリングされ、テスト容易性が向上しました。

6. 可観測性と分析機能の強化

システムの運用監視と分析に関する機能も強化されています。

  • Langfuseとの連携強化: オプションでTime-To-First-Token (TTFT) のレポート機能が追加されました。また、Langfuse SDK が v3 以上にアップグレードされ、LLM-as-judge 機能にも対応しました。
  • Explore機能のトラッキング: バナーの表示回数やアプリプレビューイベントのトラッキングが追加されました。

7. 課金とクォータの統合

課金システムとクォータ管理が統合されました。

  • Quota v3の統合: プロダクトスタックにQuota v3が統合されました。
  • 課金UIの改善: メーターベースの使用量表示や、課金API失敗時のより堅牢なクリーンアップ処理が実装されました。
  • ファイルアップローダーの対応: 課金を意識した挙動とコピーの更新が行われました。

8. データ、RAG、ナレッジベースの改善

データ処理、RAG (Retrieval Augmented Generation)、ナレッジベースに関する改善も行われています。

  • Summary IndexとWeaviateの互換性: Summary IndexとWeaviateを使用する際の互換性に関する修正が施されました。
  • ベクトルプロジェクションの強化: is_summaryoriginal_chunk_id がデフォルトのプロジェクションに含まれるようになりました。
  • 外部・バウンドデータセットのセキュリティ強化: ナレッジAPIにおけるテナントチェックが強化されました。

9. インフラと運用面での改善

システムインフラと運用に関する多くの改善が含まれています。

  • Docker Composeのヘルスチェック: api, worker, worker_beat サービスにヘルスチェックが追加され、テンプレートと環境変数の例も更新されました (S3アドレススタイルなど)。
  • Celeryの改善: デフォルトのワーカー並行処理数が4に引き上げられ、キューの不足が修正されました。
  • PostgreSQLの改善: アプリDBパスの更新に伴い、デフォルトの最大接続数が200に引き上げられました。
  • Redisの強化: 設定可能なキープレフィックスとRedis操作のリトライロジックが追加されました。
  • TiDBのサポート: エンドポイントサポートと、関連する認証バインディング(Qdrant auth bindings)の移行が実施されました。
  • Markdownのインラインスタイル: 必要に応じて、レンダリングされるMarkdownでインラインCSSを許可するオプションの環境変数 ALLOW_INLINE_STYLES が追加されました。

10. セキュリティ強化

セキュリティ面でもいくつかの重要な修正が行われました。

  • メールアドレス変更フローの強化: より厳格なフェーズバウンドトークンハンドリングによりセキュリティが強化されました。
  • IDOR (Insecure Direct Object Reference) 対策: データソースバインディングにおけるテナント検証、データセットとAPIの所有権チェックが強化されました。

11. パフォーマンス最適化

グラフ初期化のパフォーマンスが最適化され、全体的な応答性が向上しています。

12. APIとプラットフォーム内部の改善

内部的なAPIとプラットフォームの構造も大幅に改善されています。

  • Graphonへのアップグレード: dify_graph の名称とパッケージングが Graphon 0.2.2 にアップグレードされ、スタンドアロンのパッケージとなりました。
  • OpenAPIの生成スクリプト: OpenAPI v2 JSONとドキュメントポインターを生成するスクリプトが追加されました。
  • APIの非推奨化: 一部のレガシーコンソールAPIが非推奨となり、新しいパターンへの移行が促されています。
  • 大規模なリファクタリング: SQLAlchemy 2.0の select() への大規模な移行、Pydantic BaseModelを多くのコンソールおよびサービスレスポンスに採用、そしてテストコンテナベースのテストによる安定性向上が図られました。

What's Changed - 変更点ハイライト

What's Changed セクションには、主にコードベースのリファクタリング、バグ修正、テストの追加、依存関係の更新に関する多数のコミットが含まれています。これらはDifyの安定性、保守性、将来的な拡張性を高めるために不可欠な変更です。

  • SQLAlchemy 2.0 select() APIへの移行: 多くのサービスファイル、コントローラー、タスクにおいて、SQLAlchemyの新しい select() APIへの移行が行われました。これにより、データベース操作の効率化とコードのモダン化が図られています。
  • Pydantic BaseModelの採用: APIレスポンスやリクエストペイロードにおいて、辞書型からPydantic BaseModelへの移行が広く行われました。これにより、データ構造の明確化、型安全性の向上、バリデーションの強化が実現されています。
  • テストの強化: testcontainers を利用した統合テストへの移行や、多数のユニットテストの追加により、Dify全体のテストカバレッジと信頼性が向上しました。
  • 依存関係の更新: pypdf, requests, cryptography など、多くのPythonパッケージやnpmパッケージのバージョンが更新され、セキュリティとパフォーマンスが向上しました。
  • UIコンポーネントのリファクタリング: @langgenius/dify-ui パッケージへの移行や、Base UIコンポーネントのAPIアライメント、アクセシビリティの改善など、UI/UXの品質向上が図られました。
  • セキュリティ修正: GHSA-4q3w-q5mc-45rq に対応するメールアドレス変更フローの強化や、IDOR脆弱性対策としてテナントID検証の追加など、重要なセキュリティ修正が施されています。
  • パフォーマンス改善: httpx クライアントのグローバル化によるリクエストごとの生成コスト削減や、Redisのリトライロジック追加など、パフォーマンス向上のための変更も含まれています。
その他注目の変更
  • Tailwind CSS v4へのアップグレード
  • ワークフロー削除APIの追加
  • Node.js SDKのaxios廃止

おわりに

Dify v1.14.0 は、ワークフローコラボレーションという強力な新機能の導入に加え、Human-in-the-loop (HITL) のAPIサポート、MCPとプラグインの機能強化、UI/UXの改善、セキュリティ強化、パフォーマンス最適化、そして大規模な内部リファクタリングとテストの拡充が行われた、非常に重要なリリースです。

特に、チームでのDify活用を考えている方にとっては、ワークフローコラボレーション機能は作業効率を劇的に向上させるでしょう。また、HITLのAPIサポートは、より複雑なビジネス要件を持つアプリケーションへのDifyの組み込みを容易にします。

今回のアップデートにより、Dify はより堅牢で、より使いやすく、そしてチーム開発に適したプラットフォームへと進化しました。ぜひ最新版を試してみて、その進化を体験してください!


参考リンク


本記事は Dify v1.14.0 のリリースノートを基に作成されています。最新情報は公式サイトおよび GitHub リポジトリをご確認ください。


返信を残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA