用途:该技能面向使用 DSPy 构建语义检索的场景,在应用自有文本语料上,通过 dspy.Embedder 与 dspy.Embeddings 实现相似度检索,并可作为 RAG 流程的检索组件。
主要能力:支持托管嵌入模型(示例为 openai/text-embedding-3-small)和自定义本地嵌入 callable(接收 list[str] 并返回二维数值数组,例如 SentenceTransformer 的 encode);返回结果包含 passages 与 indices。使用 dspy.EmbeddingsWithScores 可获得相似度分数,便于设置阈值或重排序。当语料规模达到或超过 brute_force_threshold 默认值 20_000 时,DSPy 会构建 FAISS 索引,需先安装:pip install faiss-cpu。支持索引持久化以复用昂贵的嵌入:search.save("./retrieval-index") 与 dspy.Embeddings.from_saved("./retrieval-index", embedder=embedder)。
使用方式:定义语料 corpus,创建 embedder,再创建 dspy.Embeddings(corpus=corpus, embedder=embedder, k=2) 并调用检索。在 RAG 中可封装为 dspy.Module,forward 内先检索得到 context,再交给 dspy.ChainOfThought 等模块生成答案。
适用场景:自有语料上的语义搜索、RAG 检索层、需要相似度分数做过滤或重排序的流程。
限制与建议:大语料启用 FAISS 前应测量内存与延迟;语料切分需保持确定性与版本化;建议将检索质量与答案质量分开评估;索引昂贵时应持久化。安装、版本、平台与费用等细节资料暂未提供。