Dify 三昧:【重要】Dify v1.9.2 リリース情報 – Weaviate更新に伴う移行手順と新機能まとめ

はじめに

こんにちは、ディーネットのよろず請負人、深見です。

Dify v1.9.2 のリリース情報をまとめました。このバージョンでは、システムの安定性向上、非同期処理のパフォーマンス改善、そして開発者体験の向上に重点が置かれています。


Dify v1.9.2 リリース概要

⚠️ 重要な注意事項

Weaviate 連携の大幅な更新

Weaviate の Python クライアントが v3 から v4 へ移行したことに伴い、必要な Weaviate サーバーの最低バージョンが 1.24.0 以降に引き上げられました。

主な変更点:

  • 古い Weaviate サーバー(例: v1.19.0)をご利用の場合は、Dify を更新する前にサーバーを v1.24.0 以上にアップグレードする必要があります
  • 新しいクライアント API では gRPC がサポートされ、高速な操作が可能になりました。Docker Compose ファイルでポート 50051 を開放する必要がある場合があります
  • サーバー間のデータ移行には、Weaviate の Cursor API を使用した再インデックス作成、または標準のバックアップ/復元手順が必要になる場合があります

必須アクション:

  1. Weaviate サーバーを v1.24.0 以降にアップグレードしてください
  2. 最新の Dify 公式ドキュメントに記載されている移行ガイドに従って、データと Docker 設定を更新してください
  3. Dify のアップデートをデプロイする前に、環境が新しいバージョン要件を満たしていることを確認してください

注: この変更は v1.9.0 以降における重要なアップデートです。Weaviate 関連の変更により、ナレッジベース周りの挙動に影響する可能性がありますので、必ずご一読ください。


✨ 主な新機能とハイライト

ワークフロー & エージェント

  • ワークフローの制御性向上: ワークフローグラフの実行を一時停止・再開できるようになりました
  • ストリーミング時の構造化出力: LLM ノードのストリーミング中に構造化された出力がサポートされるようになりました
  • エージェント変数の操作性改善: エージェント変数が、ワークフローの開始ノードと同様にドラッグ&ドロップで操作できるようになりました
  • 実行管理の強化: ワークフローの実行をステータスでフィルタリングしたり、ログから再実行できるようになりました

統合 & SDK

  • 観測性の向上: OpenTelemetry と HTTPX トレースにより、システムの可視化が大幅に改善されました
  • CORS 設定の柔軟性向上: カスタムヘッダーを受け入れられるようになりました

Web & UI

  • パフォーマンス改善: 定数ファイルの分割と遅延読み込みにより、初期読み込み時間が短縮されました
  • データソースの改善: マーケットプレイスプラグインの統合とフィルタリング機能が強化されました
  • ユーザビリティの向上: 料金フッターに税金ツールチップが追加され、アカウント作成時にインターフェース言語が表示設定と自動的に同期するようになりました

⚙️ コア機能の改善

  • 型安全性の向上: 複数のモジュールで Pyright が有効になり、型定義の問題が修正されました
  • ネットワーク処理の改善: HTTP タイムアウト設定と入力検証が強化されました
  • パフォーマンス最適化: Redis キューの効率が、キャッシュされたチェックと明示的なキーのクリーンアップにより向上しました
  • 監査機能の追加: アプリケーションモデルが updated_by および updated_at フィールドを追跡するようになりました
  • 構造化出力のサポート拡大: 非ストリーミングおよびシングルステップ実行でも構造化された出力がサポートされるようになりました

🐛 バグ修正

データ処理関連

  • 重複するチャンクとデータセットのページネーション重複を修正
  • 単一ファイル削除時のデータセット選択解除の問題を修正

ワークフロー & LLM

  • ワークフローのトークン使用量計算の不具合を修正
  • LLM の使用状況追跡に関する問題を修正
  • LLM 出力変数の説明不足、変数切り捨てロジックの問題を修正

Weaviate 関連

  • ベクトル距離計算におけるモジュール不足と論理エラーを解決

認証 & セキュリティ

  • マルチ認証の認証情報の衝突を修正
  • 外部知識 URL の SSRF 検証を修正
  • デタッチされたユーザーセッションに関する問題を修正

UI/UX

  • チャットのちらつき、無限リロード、ログイン時のリダイレクト、ローダーの表示に関する問題を修正

API

  • API 全体で正しい JSON シリアル化とペイロードのインデントを保証
  • EndUser 関係の読み込みに関する問題を修正

🧹 クリーンアップ & 開発者体験の向上

  • コードベースの整理: 未使用の依存関係、冗長な DB コミット、不要なテンプレートを削除
  • 品質管理の強化: デッドコード検出のための Knip 設定を追加
  • 内部観測性の向上: HTTPX トレースと非同期テレメトリーの導入により、デバッグとモニタリングが容易になりました

📝 その他の主な変更点

多岐にわたる変更が含まれています。主な内容は以下の通りです。

  • useState 呼び出しの遅延初期化による不要な再計算の防止
  • タグ API のリファクタリング
  • i18n ファイルの翻訳と型定義の更新
  • データセットコントローラーでの Pyright の有効化と型エラーの修正
  • 単一ステップ実行でユーザー入力を structured_output 変数値としてサポート
  • AppQueueManager でタスク完了時に Redis キーを明示的に削除する処理の追加
  • チャットの入力領域、ローダーの表示、ログインのリダイレクトに関する多数の UI/UX 改善
  • データセットのメニュー、プラグインの統合、検索フィルタリングの強化
  • ワークフローグラフの検証チェックの追加
  • セキュリティ向上のため、認証トークンの保存に localStorage の代わりに HTTP-only クッキーを使用
  • OpenAPI スキーマのインポートと Pydantic の検証エラーの修正
  • 様々な依存関係の更新とクリーンアップ
  • 新規コントリビューターが多数参加

補足: Weaviate 関連の不具合対応について

問題の概要

v1.9.0 および v1.9.1 にアップデートした場合、前述の Weaviate のメジャーバージョンアップにより、ナレッジベースの動作に重大な影響が発生する可能性があります。

具体的な症状:

  • 登録済みのナレッジベースが正常に利用できなくなる
  • 新規登録時にインデックス作成が失敗する

正確な原因は公式に明示されていませんが、v1.9.1 までには Weaviate 関連の対応に不備があったようで、それが挙動に影響を与えていたと考えられます。

推奨される対応方法

この問題を解消するには、v1.9.2 にアップデートすることが必要です。

ただし、v1.9.0 および v1.9.1 へのアップデート時に Weaviate の DB に影響が及んでいる可能性があるため、そのまま v1.9.2 へアップデートするのではなく、v1.9.0 または v1.9.1 にアップデートする前にバックアップしたデータに差し替えてから v1.9.2 へアップデートすることを強く推奨します。

アップデート手順

以下の手順で、クリーンな状態から v1.9.2 へアップデートできます。

1. 各種設定ファイルのバックアップ (任意)

cd ~/dify/docker
cp -p docker-compose.yaml docker-compose.yaml.$(date +%s).bak
cp -p .env .env.$(date +%s).bak

2. 最新コードの取得

cd ~/dify
git checkout main
git pull origin main

注: 現時点では、この操作により v1.9.2 にアップデートされます。

3. サービスの停止

cd ~/dify/docker
docker compose down

4. データのリストア

mv volumes volumes_OLD
tar xvf ./volumes-1759215275.tgz

重要: volumes-1759215275.tgz の部分は、v1.9.0 または v1.9.1 にアップデートする前にバックアップしたデータのファイル名に置き換えてください。また、バックアップデータ時点の内容に戻ることに注意をして下さい。

5. 環境設定の調整(移行)

mv .env .env_20251027
cp -p .env.example .env
vi .env

重要: 環境設定ファイル .env をカスタムしている場合は、この時点でカスタム内容を新しい .env に反省させることを忘れないこと!

6. サービスのアップグレードと起動

docker compose pull
docker compose up -d

docker compose ps -a
docker compose logs -f

以上の手順により、v1.9.2 へのアップデートが完了し、ナレッジベースが正常に動作するようになります。

注意事項

  • バックアップデータがない場合は、ナレッジベースの再登録が必要になる可能性があります
  • 本手順を実行する前に、必ず現在の環境の完全なバックアップを取得することを推奨します
  • 本番環境での作業前に、テスト環境で手順を確認することをお勧めします

おわりに

Dify v1.9.2 は、安定性とパフォーマンスの向上を中心とした、重要なアップデートとなっています。

特に Weaviate の大幅な更新は、既存ユーザーにとって影響の大きい変更点です。v1.9.0 や v1.9.1 を経由してアップデートされた方は、上記の補足セクションで説明した手順を参考に、適切な対応を行ってください。バックアップデータからのリストアを含む慎重な手順が推奨されます。

一方で、ワークフローの制御性向上や構造化出力のサポート拡大など、開発者体験を改善する機能も多数追加されており、より柔軟で効率的な開発が可能になっています。

アップグレードの際は、公式ドキュメントを確認しながら、十分な準備期間を設けて慎重に進めることをお勧めします。

今後も Dify の進化に注目していきたいと思います。


本記事の内容は、Dify v1.9.2 リリース情報に基づいています。最新情報については公式ドキュメントをご確認ください。

参考リンク: GitHub リリースページ

返信を残す

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

CAPTCHA