如何删除LangChain VectorStore中的文档及对应嵌入向量
解决LangChain中SemanticSimilarityExampleSelector对应VectorStore的向量删除问题
直接删除VectorStore中向量的方法
无需重新创建示例选择器,直接操作底层Chroma向量库即可完成删除,步骤如下:
- 获取底层Chroma实例
从已创建的example_selector中取出对应的VectorStore:
vectorstore = example_selector.vectorstore
- 定位要删除的向量ID
先获取向量库中所有文档及对应ID,匹配你要删除的示例内容,筛选出目标ID:
# 获取所有文档、ID集合 all_entries = vectorstore.get() # 替换为触发内容过滤的示例片段,用于匹配目标文档 target_content = "触发OpenAI内容过滤的示例文本" # 筛选出目标文档对应的ID target_ids = [ doc_id for doc_id, doc_content in zip(all_entries['ids'], all_entries['documents']) if target_content in doc_content ]
- 执行删除操作
调用Chroma的delete方法移除对应向量:
vectorstore.delete(ids=target_ids)
- 持久化修改(本地存储场景)
如果你的Chroma是持久化到本地目录的(创建时指定了persist_directory参数),需执行持久化保存修改:
vectorstore.persist()
额外提示
后续新增示例时,可提前过滤掉可能触发内容过滤的条目,避免重复执行删除操作。
内容的提问来源于stack exchange,提问作者Yeti123
相关产品推荐
相关产品推荐

