Dify のアップグレード後に発生する知識ベースのベクトル検索エラーの修正方法
問題
Dify をアップグレードした後(例:1.8.x/1.10.x から 1.11.0+ へ)、知識ベースの検索テスト時に以下のエラーが発生することがあります:
Query call with protocol GRPC search failed with message extract target vectors: class
Vector_index_xxx_Node does not have named vector default configured.
Available named vectors map[].
根本原因
英語: これは Weaviate のスキーマ形式の変更が原因です。古い知識ベースはトップレベルに vectorIndexConfig を使用していますが、新しい Dify バージョンでは vectorConfig.default が期待されています。この不一致により、ベクトル検索が失敗します。
中国語: これは Weaviate のスキーマ形式の変更が原因です。古い知識ベースはトップレベルに vectorIndexConfig を使用していますが、新しい Dify バージョンでは vectorConfig.default が期待されています。この不一致により、ベクトル検索が失敗します。
解決策
この問題を一括で修正するため、Python スクリプトを作成しました:
GitHub リポジトリ
クイックスタート
ステップ 1: スクリプトのダウンロードとコピー
# ダウンロード
curl -o /tmp/batch_fix_weaviate.py https://raw.githubusercontent.com/yupoet/dify-weaviate-fix/main/batch_fix_weaviate.py
# コンテナにコピー
docker cp /tmp/batch_fix_weaviate.py docker-api-1:/tmp/
ステップ 2: 影響を受けるコレクションのスキャン
docker exec docker-api-1 python /tmp/batch_fix_weaviate.py scan
ステップ 3: すべての影響を受けるコレクションの修正
docker exec -it docker-api-1 python /tmp/batch_fix_weaviate.py fix
ステップ 4: Dify で再埋め込み
英語: 各影響を受ける知識ベースについて、設定 → 埋め込みモデル に移動し、別のモデルに切り替えて保存し、元のモデルに戻して再度保存します。これにより再埋め込みが強制されます。
中国語: 各影響を受ける知識ベースについて、設定 → 埋め込みモデル に移動し、別のモデルに切り替えて保存し、元のモデルに戻して再度保存します。これにより再埋め込みが強制されます。
利用可能なコマンド
| コマンド | 説明 |
|---|---|
scan |
修正が必要なコレクションを一覧表示 |
dry-run |
修正をシミュレート(実際の変更は行わない) |
fix |
すべての影響を受けるコレクションを修正 |
fix-one <name> |
単一のコレクションを修正 |
cleanup |
孤立したコレクションを削除 |
list-names |
知識ベースの名前を表示 |
環境変数
| 変数 | デフォルト | 説明 |
|---|---|---|
WEAVIATE_ENDPOINT |
http://weaviate:8080 |
Weaviate の URL |
WEAVIATE_API_KEY |
(空) | API キー |
テスト環境
- Dify 1.11.0
- Weaviate 1.27.0
完全なドキュメント
この情報が役に立ちましたか?リポジトリに
をつけてください!