⚠️ このドキュメントはAIによって自動翻訳されています。不正確な部分がある場合は、英語版を参照してください。
このガイドでは、Weaviate クライアント v3 から v4.17.0 への移行と、Weaviate サーバーをバージョン 1.19.0 から 1.27.0 以降にアップグレードする方法について説明します。この移行は、weaviate-client v4 アップグレードを含む Dify バージョンに必要です。
概要
今後のリリースで、weaviate-client が v3 から v4.17.0 にアップグレードされます。このアップグレードにより、パフォーマンスが大幅に向上し、安定性が向上しますが、Weaviate サーバーバージョン 1.27.0 以降が必要です。影響を受けるユーザー
この移行の影響を受けるのは:- 1.27.0 未満のバージョンで自己ホスト Weaviate インスタンスを実行している自己ホスト Dify ユーザー
- 現在 Weaviate サーバーバージョン 1.19.0-1.26.x を使用しているユーザー
- weaviate-client v4 を含む Dify バージョンにアップグレードするユーザー
- クラウドホスト Weaviate ユーザー(Weaviate Cloud がサーバーバージョンを管理)
- すでに Weaviate 1.27.0+ を使用しているユーザーは、追加の手順なしで Dify をアップグレードできます
- Dify のデフォルト Docker Compose セットアップを実行しているユーザー(Weaviate バージョンは自動的に更新されます)
破壊的変更
クライアント v4 の要件
weaviate-client v4 では、いくつかの破壊的変更が導入されています:- **最小サーバーバージョン:**Weaviate サーバー 1.27.0 以降が必要
- **API 変更:**新しいインポート構造(
weaviate.clientではなくweaviate.classes) - **gRPC サポート:**パフォーマンス向上のため、デフォルトでポート 50051 で gRPC を使用
- **認証の変更:**更新された認証方法と構成
なぜアップグレードするのか?
- **パフォーマンス:**gRPC (50051) により、クエリおよびインポート操作が大幅に高速化
- **安定性:**接続処理とエラー回復の改善
- **将来の互換性:**最新の Weaviate 機能と継続的なサポートへのアクセス
- **セキュリティ:**Weaviate 1.19.0 は 1 年以上前のもので、セキュリティアップデートを受け取っていません
バージョン互換性マトリックス
| Dify バージョン | weaviate-client バージョン | 互換性のある Weaviate サーバーバージョン |
|---|---|---|
| ≤ 1.9.1 | v3.x | 1.19.0 - 1.26.x |
| ≥ 1.9.2* | v4.17.0 | 1.27.0+(1.32.11 までテスト済み) |
*weaviate-client v4 を含む正確な Dify バージョンは異なる場合があります。特定のバージョンのリリースノートを確認してください。この移行は、weaviate-client v4.17.0 以降を使用する Dify バージョンに適用されます。
Weaviate サーバーバージョン 1.19.0 は 1 年以上前にリリースされ、現在は古くなっています。1.27.0+ にアップグレードすると、パフォーマンス、安定性、機能の数多くの改善にアクセスできます。
前提条件
移行を開始する前に、次の手順を完了してください:-
現在の Weaviate バージョンを確認
レスポンスで
versionフィールドを探します。 -
データをバックアップ
- Weaviate データの完全バックアップを作成
- Docker Compose を使用している場合は、Docker ボリュームをバックアップ
- 現在の構成設定を文書化
-
システム要件を確認
- データベース移行のための十分なディスク容量を確保
- Dify と Weaviate 間のネットワーク接続を検証
- 外部 Weaviate を使用している場合、gRPC ポート (50051) がアクセス可能であることを確認
-
ダウンタイムを計画
- 移行にはサービスのダウンタイムが必要
- 本番環境で実行している場合はユーザーに通知
- トラフィックの少ない時間帯に移行をスケジュール
移行パス
デプロイメント設定に一致する移行パスを選択してください:パス A:Docker Compose ユーザー(推奨)
これは、Docker Compose を介して Dify を実行し、バンドルされた Weaviate インスタンスを使用しているユーザーにとって最も簡単なパスです。Dify の標準 Docker Compose セットアップを使用している場合、Dify をアップグレードすると Weaviate バージョンが自動的に更新されます。手動構成は不要です。
ステップ 1:データをバックアップ
Dify プロジェクトディレクトリに移動し、Docker ボリュームをバックアップします:バックアップファイルをプロジェクトディレクトリ外の安全な場所に保存してください。移行が失敗してロールバックする必要がある場合に必要になります。
ステップ 2:Dify を更新
weaviate-client v4 と Weaviate 1.27.0+ を含む最新の Dify バージョンをプル:- Weaviate サーバー 1.27.0+ イメージ
- weaviate-client v4.17.0(Dify コンテナに自動インストール)
- 適切な gRPC ポート構成 (50051)
ステップ 3:起動を監視
ログを確認してサービスが正しく起動することを確認:ステップ 4:移行を検証
以下の検証手順セクションを参照してください。パス B:外部/自己ホスト Weaviate
別のサーバー、マネージドインスタンス、または Weaviate Cloud で Weaviate を実行しているユーザー向け。ステップ 1:Weaviate データをバックアップ
Weaviate のバックアップ API を使用して完全バックアップを作成:詳細なバックアップ手順については、Weaviate バックアップドキュメントを参照してください。
ステップ 2:Weaviate インスタンスを停止
ステップ 3:Weaviate サーバーをアップグレード
Docker の場合:ステップ 4:Weaviate アップグレードを検証
Weaviate が正しいバージョンで実行されていることを確認:ステップ 5:Dify 構成を更新
外部 Weaviate 接続を構成するために Dify 環境変数を更新:WEAVIATE_GRPC_ENDPOINT は、プロトコルプレフィックスなしの hostname:port 形式である必要があります(grpc:// または http:// なし)。ステップ 6:Dify を更新
ステップ 7:移行を検証
以下の検証手順セクションを参照してください。レガシーバージョンのデータ移行
自動移行
ほとんどの場合、Weaviate 1.27.0 は 1.19.0 からデータを自動的に移行します:- Weaviate 1.19.0 を停止
- 同じデータディレクトリで Weaviate 1.27.0 を起動
- Weaviate は古い形式を検出し、自動的に移行
- ログを監視して移行の進行状況とエラーを確認
手動移行(自動移行が失敗した場合)
自動移行が失敗した場合は、Weaviate のエクスポート/インポートツールを使用:1. 旧バージョンからデータをエクスポート
Cursor API またはバックアップ機能を使用してすべてのデータをエクスポートします。大規模なデータセットの場合は、Weaviate のバックアップ API を使用:2. 新しいバージョンにデータをインポート
Weaviate 1.27.0 にアップグレードした後、バックアップを復元:複雑なスキーマや大規模なデータセットの場合の包括的な移行ガイダンスについては、公式の Weaviate 移行ガイドを参照してください。
構成の変更
新しい環境変数
weaviate-client v4 を含む Dify バージョンで利用可能な新しい環境変数:WEAVIATE_GRPC_ENDPOINT
**説明:**Weaviate 接続の gRPC エンドポイントを指定します。gRPC を使用すると、バッチ操作とクエリのパフォーマンスが大幅に向上します。 形式:hostname:port(プロトコルプレフィックスなし)
デフォルトポート:
- 非セキュア:50051
- セキュア (TLS):443
更新された環境変数
既存のすべての Weaviate 環境変数は変更なし:- **WEAVIATE_ENDPOINT:**Weaviate の HTTP エンドポイント(例:
http://weaviate:8080) - **WEAVIATE_API_KEY:**認証用の API キー(有効な場合)
- **WEAVIATE_BATCH_SIZE:**インポートのバッチサイズ(デフォルト:100)
- **WEAVIATE_GRPC_ENABLED:**gRPC の有効化/無効化(v4 のデフォルト:true)
完全な構成例
検証手順
移行完了後、すべてが正常に動作していることを検証:1. Weaviate 接続を確認
Weaviate がアクセス可能で正しいバージョンで実行されていることを確認:2. Dify 接続を検証
Dify ログを確認して Weaviate への接続が成功していることを確認:3. ナレッジベースの作成をテスト
- Dify インスタンスにログイン
- ナレッジベースセクションに移動
- 新しいナレッジベースを作成
- テストドキュメント(PDF、TXT、または MD)をアップロード
- インデックス作成が完了するまで待つ
- ステータスが「QUEUING」→「INDEXING」→「AVAILABLE」に変わることを確認
ドキュメントが「QUEUING」ステータスで止まっている場合は、Celery worker が実行されているか確認:
docker compose logs worker4. ベクトル検索をテスト
- ナレッジベース統合を含むチャットアプリケーションを作成または開く
- ナレッジベースから情報を取得する質問をする
- 正しいスコアで関連する結果が返されることを確認
- 引用/ソースリンクが正しく機能することを確認
5. gRPC パフォーマンスを検証
gRPC が有効になっている場合、パフォーマンスの向上が見られるはずです:gRPC が適切に構成されている場合、ベクトル検索クエリは HTTP のみの接続と比較して 2〜5 倍高速になるはずです。
トラブルシューティング
問題:「No module named ‘weaviate.classes’」
**原因:**weaviate-client v4 がインストールされていないか、v3 がまだ使用されています。 解決策:問題:gRPC ポート (50051) で接続拒否
**原因:**ポート 50051 が公開されていない、アクセスできない、または Weaviate がリッスンしていません。 解決策:- バンドルされた Weaviate を使用する Docker Compose ユーザーの場合: ポートはコンテナ間で内部的に利用可能です。Docker 外部から接続しない限り、アクションは不要です。
-
外部 Weaviate の場合:
-
ファイアウォールルールを確認:
問題:認証エラー(401 未承認)
**原因:**API キーの不一致または認証構成の問題。 解決策:-
Weaviate と Dify の API キーが一致することを確認:
-
匿名アクセスを使用している場合:
次に、Dify 構成から
WEAVIATE_API_KEYを削除します。
問題:ドキュメントが「QUEUING」ステータスで止まる
**原因:**Celery worker が実行されていないか、Redis に接続されていません。 解決策:問題:移行後のパフォーマンス低下
**原因:**gRPC が有効になっていないか、正しく構成されていません。 解決策:-
gRPC 構成を検証:
次のように表示されるはずです:
-
gRPC 接続をテスト:
- それでも遅い場合は、Dify と Weaviate 間のネットワーク遅延を確認
問題:スキーマ移行エラー
**原因:**Weaviate バージョン間の互換性のないスキーマ変更またはデータの破損。 解決策:-
Weaviate ログで特定のエラーメッセージを確認:
-
現在のスキーマをリスト:
-
必要に応じて、破損したコレクションを削除(⚠️ すべてのデータが削除されます):
-
Dify を再起動してスキーマを再作成:
問題:Docker ボリュームの権限エラー
**原因:**Docker コンテナのユーザー ID の不一致。 解決策:ロールバック計画
移行が失敗してロールバックする必要がある場合:ステップ 1:サービスを停止
ステップ 2:バックアップを復元
ステップ 3:Dify バージョンを元に戻す
ステップ 4:サービスを再起動
ステップ 5:ロールバックを検証
サービスが古いバージョンで実行されていることを確認:可能であれば、常にステージング環境でロールバック手順を最初にテストしてください。大規模な移行を試みる前に、複数のバックアップコピーを保持してください。
追加リソース
公式ドキュメント
コミュニティリソース
移行ツール
まとめ
この移行により、Dify のベクトルストレージ機能に重要な改善がもたらされます: ✓ **パフォーマンスの向上:**gRPC サポートにより、クエリとインポート速度が大幅に向上(2〜5 倍高速) ✓ **安定性の向上:**接続処理とエラー回復の強化 ✓ **セキュリティ:**Weaviate 1.19.0 では利用できないセキュリティ更新とパッチへのアクセス ✓ **将来性:**最新の Weaviate 機能と継続的なサポートへのアクセス これは古いバージョンのユーザーにサーバーアップグレードを必要とする破壊的変更ですが、その利点は移行作業を大きく上回ります。ほとんどの Docker Compose ユーザーは、自動更新により 15 分以内に移行を完了できます。このガイドでカバーされていない問題が発生した場合は、Dify GitHub Issues ページで「weaviate」および「migration」ラベルを付けて報告してください。