目次
はじめに
Difyをご利用の皆さんならびに興味のある皆さん、こんにちは!
ディーネットのよろず請負人、深見です。
今回は、Difyの最新パッチリリースであるv1.13.3のリリース情報について、開発者/テクニカルライターの視点から詳しく解説します。このバージョンは、ワークフローの実行、ストリーミング、そしてナレッジ検索における安定性と正確性の向上に焦点を当てた重要なアップデートとなっています。
🚀 v1.13.3の新機能
今回のリリースでは、以下の新機能が追加されました。
🎬 Workflow Configuration: モデルパラメータの変数参照対応
LLM(大規模言語モデル)、Question Classifier(質問分類器)、Variable Extractor(変数抽出器)ノードにおいて、モデルパラメータに変数を参照する機能が追加されました。これにより、ワークフロー内で動的にモデルの挙動を制御できるようになり、より柔軟なアプリケーション構築が可能になります。
🛠️ バグ修正
v1.13.3では、ユーザー体験とシステムの信頼性を向上させるための様々なバグ修正が行われています。
- Streaming Reliability(ストリーミングの信頼性向上): フロントエンドとバックエンド間のイベント配信を安定させるため、
StreamsBroadcastChannelのリプレイと並行処理に関する問題が修正されました。これにより、チャットのリアルタイム性などが向上し、よりスムーズな対話が可能になります。 - Workflow Editor Behavior(ワークフローエディタの動作改善):
- 貼り付けられたノードがループ/イテレーションのメタデータを保持してしまう問題が修正されました。
HumanInputノードが不正なコンテナ内に貼り付けられるのを防ぐようになりました。
これらの修正により、ワークフローの編集作業がより直感的でエラーの少ないものになります。
- Runtime Execution(ランタイム実行の改善):
- プロンプトメッセージの変換ロジックが復元されました。
max_retries=0(最大リトライ回数0)の設定が executor 駆動のHTTPリクエスト実行で正しく処理されるようになりました。
これらの修正は、ワークフローが意図通りに実行されることを保証し、信頼性を高めます。
- Knowledge Retrieval(ナレッジ検索の改善):
- Webレスポンスで引用メタデータが保持されるようになりました。
- データセットアイコンのメタデータが欠落している場合にクラッシュする問題が修正されました。
- ヒット数クエリのフィルタリングが修正されました。
- インデックス化されたドキュメントのチャンクプレビューが復元されました。
これらの改善により、ナレッジベースからの情報検索がより正確になり、ユーザーは必要な情報を容易に見つけられるようになります。
🔧 内部変更 (Under the Hood)
このリリースは、v1.13.2からのアップグレードを行うチーム向けに、ワークフローのランタイム動作、リアルタイムストリーミング、ナレッジベースの使いやすさに対する的を絞った修正に重点を置いています。
バージョンアップ時の注意点とアップデート手順
注意点:
今回のリリースはパッチリリースであり、大規模な機能変更はありませんが、安定性向上のための重要な修正が含まれています。特に、ワークフローの実行やナレッジ検索を利用している場合は、アップデートを強く推奨します。
アップデート手順:
Docker Compose を利用したデプロイの場合
- 既存の
docker-compose.yamlファイルのバックアップ(任意):
もしdocker-compose.yamlをカスタマイズしている場合は、念のためバックアップを取っておきましょう。cd docker cp docker-compose.yaml docker-compose.yaml.$(date +%s).bak - 最新のコードの取得:
mainブランチから最新のコードを取得します。git checkout main git pull origin main - サービスの停止:
dockerディレクトリで以下のコマンドを実行し、Difyサービスを停止します。docker compose down - データのバックアップ:
volumesディレクトリをバックアップします。これはDifyのデータが保存されている場所です。tar -cvf volumes-$(date +%s).tgz volumes - サービスのアップグレードと起動:
サービスをアップグレードし、バックグラウンドで起動します。docker compose up -d
ソースコードからのデプロイの場合
- APIサーバー、Worker、Webフロントエンドサーバーの停止:
現在実行中のDify関連サービスをすべて停止します。 - リリースブランチからの最新コードの取得:
1.13.3のリリースブランチにチェックアウトし、最新のコードを取得します。git checkout 1.13.3 - Python依存関係の更新:
apiディレクトリに移動し、Pythonの依存関係を更新します。cd api uv sync - マイグレーションスクリプトの実行:
データベースのマイグレーションスクリプトを実行します。uv run flask db upgrade - APIサーバー、Worker、Webフロントエンドサーバーの再起動:
すべてのDify関連サービスを再度起動します。
What’s Changed
v1.13.3では、コードベースの広範な改善とクリーンアップが行われています。主な変更点としては、以下の点が挙げられます。
- リファクタリング:
dict/MappingからTypedDictへの置き換え、sa.StringからEnumTextへの置き換えなど、コードの型安全性の向上と保守性向上のためのリファクタリングが多数行われました。これにより、開発者がコードを理解しやすくなり、潜在的なバグを減らすことができます。 - UIコンポーネントの改善:
Base UI NumberField、Base UI Toast、Base UI Scroll Area、Base UI Sliderといった新しいUIコンポーネントが追加・改善され、DifyのWebインターフェースの使いやすさと一貫性が向上しています。 - テストの強化: ワークフローコンポーネントの単体テストの追加や、テストインフラの改善により、システムの信頼性と安定性がさらに向上しました。
- 依存関係の更新:
pyasn1,ujson,pypdf,litellm,google-api-python-clientなど、多くの依存関係が最新バージョンに更新されました。これにより、セキュリティの向上と最新機能の利用が可能になります。 - 国際化対応(i18n): 翻訳の同期やトルコ語翻訳の修正が行われ、より多くの言語での利用が改善されています。
- 新しいコントリビューター: 多くの新しいコントリビューターがDifyプロジェクトに参加し、多岐にわたる改善に貢献しています。
おわりに
Dify v1.13.3は、ワークフローの実行、ストリーミング、ナレッジ検索といったDifyのコア機能の安定性と正確性を向上させるための重要なパッチリリースです。新機能としてワークフローのモデルパラメータにおける変数参照のサポートが追加され、バグ修正によって全体的な信頼性とユーザー体験が向上しています。
常に最新の安定バージョンにアップデートすることで、Difyを最大限に活用し、より効率的なLLMアプリケーション開発を進めることができます。ぜひこの機会にアップデートをご検討ください!
※Dify で社内向けに AI チャットボットを作ってみたいけど難しいのかなぁ・・・とか、お悩みの方はご相談ください。
簡単なことからでも、お話をお伺いします。
参考リンク
本記事は Dify v1.13.3 のリリースノートを基に作成されています。最新情報は公式サイトおよび GitHub リポジトリをご確認ください。