用途:本技能用于在 DSPy 中配置向量检索。Qdrant 是用 Rust 编写的开源向量搜索引擎,也是唯一拥有官方 DSPy 集成包(dspy-qdrant)的向量数据库。DSPy 3.0 移除了主仓库中社区贡献的 retriever 模块(ChromadbRM、PineconeRM、WeaviateRM、QdrantRM 等),dspy-qdrant 是官方替代方案,独立维护并保持 DSPy 兼容;其他向量数据库需自行编写约 15 行的 dspy.Retrieve 子类。
主要能力:通过 QdrantRM 在 DSPy 中使用 Qdrant,支持自定义嵌入模型与维度(LiteLLM 格式,如 openai/text-embedding-3-small)、k 值、本地或云端地址与 API Key;Qdrant 自身支持混合检索(稠密+稀疏)、payload 过滤、多租户与横向扩展。资料还给出用 dspy.Embedder 建立集合并 upsert 文档、构建 RAG 流程(retrieve + ChainOfThought)、以及混合检索中用 RRF 融合的示例。
使用方式:安装执行 pip install dspy-qdrant。本地开发可运行 docker run -p 6333:6333 -p 6334:6334 qdrant/qdrant;也可使用 Qdrant Cloud(免费层 1GB、1 节点,需设置 QDRANT_URL 与 QDRANT_API_KEY);测试可用 QdrantClient(":memory:")。配置示例中通过 dspy.configure(lm=..., rm=retriever),随后 dspy.Retrieve(k=5) 即走 Qdrant。其他数据库按同一模式实现 dspy.Retrieve 子类的 forward,返回 dspy.Prediction(passages=[...])。
适用场景:新 DSPy 项目优先 Qdrant;本地原型可选用 ChromaDB;生产已用 Pinecone/Weaviate 则写自定义 retriever;需要关键词+语义混合检索时选 Qdrant 或 Weaviate。
限制与注意:QdrantRM 期望文本存储在名为 text 的 payload 字段(或配置字段名);索引与查询所用嵌入模型及维度必须一致;ChromaDB 为单进程、无复制,适合原型不适合生产;DSPy 3.0 后 from dspy.retrieve.chromadb_rm import ChromadbRM 已不可用。资料未提供具体收费价格与更多部署细节。