ImportError: cannot import name ‘IDF_EMBEDDING_MODELS’ from ‘qdrant_client.qdrant_fastembed’ `

这是 LlamaIndex 的 Qdrant 集成与 qdrant-client 1.17.0 之间的兼容性问题,优先尝试将 qdrant-client 降级到 1.17.0 以下版本(例如 1.16.2)即可解决。

快速结论:这是 LlamaIndex 的 Qdrant 集成与 qdrant-client 1.17.0 之间的兼容性问题,优先尝试将 qdrant-client 降级到 1.17.0 以下版本(例如 1.16.2)即可解决。

适用环境:Issue 已确认的环境为 LlamaIndex 0.14.23、Python 3.12、macOS,依赖中包含 qdrant-client==1.17.0fastembed==0.8.0llama-index-vector-stores-qdrant>=0.10.2

最快修复方案:qdrant-client 固定到 <1.17.0(例如 qdrant-client==1.16.2)。这是 Issue 评论中给出的明确建议。

注意事项:当前 llama-index-vector-stores-qdrant 的依赖声明为 qdrant-client>=1.7.1,没有设置上限,因此即使包管理器安装到最新版本也会继续触发该问题。此外,该 import 仅在创建使用 FastEmbed 稀疏模型进行混合/稀疏检索的集合时才会用到,若你未使用该功能,后续 LlamaIndex 侧的修复会相对简单,但在修复发布前仍需固定客户端版本。

问题场景

用户在 LlamaIndex 项目中使用 Qdrant 向量存储做文档摄取(ingestion)时触发。运行环境为 Python 3.12,通过 uv 运行 rag.py 脚本,脚本中导入了 llama_index.vector_stores.qdrant,随后执行 VectorStoreIndex.from_documents() 写入 Qdrant,导入阶段即抛出异常。

报错原文

ImportError: cannot import name 'IDF_EMBEDDING_MODELS' from 'qdrant_client.qdrant_fastembed'

原因分析

可能原因是 qdrant-client 1.17.0 中已将 IDF_EMBEDDING_MODELSqdrant_client.qdrant_fastembed 移除或迁移到其他模块,但 llama-index-vector-stores-qdrantbase.py 第 54 行仍直接从这个模块导入该名称。由于 llama-index-vector-stores-qdrantpyproject.toml 中只声明了 qdrant-client>=1.7.1,没有上限约束,所以较新的 qdrant-client 版本会破坏该集成。

环境排查

  • 确认 qdrant-client 安装版本是否为 1.17.0 或更高(Issue 中明确指向 1.17.0)。
  • 确认 llama-index-vector-stores-qdrant 版本是否 ≥0.10.2。
  • 确认 llama-index 版本是否为 0.14.23 或相近版本。
  • 确认 Python 版本是否 ≥3.12(Issue 中为 3.12,但该错误不一定只在此版本出现)。
  • 确认 fastembed 版本是否为 0.8.0(Issue 中的锁版本)。

解决步骤

  1. 在项目的依赖声明中将 qdrant-client 固定为 1.16.2<1.17.0 的版本。
  2. 重新安装依赖并重启 Python 进程。
  3. 再次运行导入 QdrantVectorStore 的脚本,确认不再报 ImportError。
  4. (可选)如果必须使用 qdrant-client 1.17.0+,可以等待 llama-index-vector-stores-qdrant 发布修复版本后再升级;Issue 中未提供其他已验证的升级方案。

验证方法

确认 from llama_index.vector_stores.qdrant import QdrantVectorStore 能正常执行,且后续文档摄取流程不再出现该 ImportError。同时可运行已有的 RAG 摄取逻辑,确认写入 Qdrant 无异常。

参考来源

run-llama/llama_index #22612

GamsGo AI

AI 工具推荐

想把多个 AI 模型放在一个入口?

GamsGo AI 集成 ChatGPT、DeepSeek、Gemini、Claude、Midjourney、Veo 等常用模型,适合写作、绘图、视频和日常 AI 工作流。

了解 GamsGo AI

推广链接:通过此链接购买,我可能获得佣金,不影响你的价格。

这个方案解决了吗?

celebrityanime
celebrityanime
文章: 18548

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注