智能体向量数据库怎样删除一份文档的切片?用 Qdrant 按 payload 筛选并回读

从智能体向量数据库撤下一份文档时,只删除一个point可能漏掉其它切片。按开发者确认的doc_id筛选全部相关point,删除前预览ID,删除后回读核对范围。

从智能体向量数据库撤下一份文档时,只删除一个point可能漏掉其它切片。按开发者确认的doc_id筛选全部相关point,删除前预览ID,删除后回读核对范围。

维护智能体向量集合的开发者。本文使用 Python 3.11 与 qdrant-client 1.17.1 的本地内存模式,先验证一组人工构造的小样本。AI 负责提出实现或解释差异,结果由本地检查决定;这里没有把模型回答当成真实运行结果。

智能体向量数据库怎样删除一份文档的切片?用 Qdrant 按 payload 筛选并回读

核对按文档筛选删除切片前,先定规则

本例使用qdrant-client 1.17.1内存模式,三个两维向量都是人为构造,没有嵌入模型调用或云端连接。

doc_id写在payload中,一份文档可以对应多个point。预览匹配ID后再执行FilterSelector删除,不能让模型自由指定集合。

只检查更新响应还不够,回读确认目标文档匹配为空,且另一文档point仍存在。

给 AI 的输入要包含什么

把下面这份输入说明和你的实际样本一起交给可用的 AI 编程助手。示例只含虚构数据;对真实材料先去除账号凭据和个人信息。

在本地Qdrant内存集合写入doc=A两个point、doc=B一个point;固定doc_id=A筛选,预览ID、delete(wait=True)、回读验证A不存在且B保留。不能连生产库,不能delete_collection。

要求模型保留检查条件,并把它认为缺少的业务定义列出来。若回答改变了输入字段、忽略异常分支或直接删除原材料,先要求修正,再运行。提示词的作用是缩小任务范围,验收仍以代码和数据为准。

保存并运行最小验证程序

下方程序把关键规则和验证用例放在同一个可复跑示例中,便于先理解输入如何变成输出,再用它检查 AI 给出的实现。

新建练习目录,执行 python -m venv .venv。Windows使用 .venv\Scripts\python.exe -m pip install qdrant-client==1.17.1;macOS/Linux使用 .venv/bin/python -m pip install qdrant-client==1.17.1。把代码保存为check.py,用同一环境的python运行。不要配置云端地址或生产集合。

from qdrant_client import QdrantClient,models
from importlib.metadata import version
client=QdrantClient(':memory:')
client.create_collection('demo',vectors_config=models.VectorParams(size=2,distance=models.Distance.COSINE))
client.upsert('demo',points=[models.PointStruct(id=i,vector=[1.0,0.0],payload={'doc_id':doc}) for i,doc in [(1,'A'),(2,'A'),(3,'B')]],wait=True)
condition=models.Filter(must=[models.FieldCondition(key='doc_id',match=models.MatchValue(value='A'))])
before,_=client.scroll('demo',scroll_filter=condition,limit=10)
assert sorted(p.id for p in before)==[1,2]
client.delete('demo',points_selector=models.FilterSelector(filter=condition),wait=True)
after,_=client.scroll('demo',scroll_filter=condition,limit=10)
remaining,_=client.scroll('demo',limit=10)
assert after==[] and [p.id for p in remaining]==[3]
print('qdrant_client',version('qdrant-client'))
print('preview_ids',[p.id for p in before])
print('remaining_ids',[p.id for p in remaining])
client.close()

怎样判断结果符合要求

预览ID为1、2,删除后剩余只有3,客户端版本显示1.17.1。本例真实执行的是本地内存集合,不是生产文档撤销。

下方是这份最小示例在本地执行得到的输出。它验证示例程序与断言的关系,不代表任何 AI 模型一次就能生成同样代码,也不构成性能或生产可靠性结论。

qdrant_client 1.17.1
preview_ids [1, 2]
remaining_ids [3]

scroll的limit不代表全量,真实预览多于一页时要遍历offset直到结束。

删除向量后来源文件、答案缓存与其它索引可能仍有旧内容,撤销流程应覆盖这些层。

哪些失败必须停下来处理

生产删除需要身份、文档归属、确认与备份。参数筛选不是权限验证。

超时结果未知应查匹配points,不直接重复扩大删除条件。

接入自己的任务前再核对一次

让AI辅助生成删除代码时固定集合与doc_id来源,先在本地副本验证这组断言。

记录删除前ID清单与回读证据,禁止把point删除响应包装成完整知识撤销。

资料与适用范围

QdrantClient 1.17.1支持内存模式、FilterSelector删除与scroll读取;源代码固定版本并与本地安装核对。以下链接核对于 2026-10-03;运行环境及额外依赖按本文前述说明。

相关基础可阅读 Qdrant 向量库怎么导出重建?逐页保存向量和 payload 并核对 ID。本文的重点是核对按文档筛选删除切片,可以把两项检查作为不同步骤保留。

Ai菜鸟网。发布者:AI小管家,转载请注明出处:https://www.alyyhw.com/33457.html

赞 (0)
AI小管家的头像AI小管家
长文本检索结果怎样装进 AI 上下文?整段选择证据,并记录未放入的片段
上一篇 1小时前
多智能体编队怎样随领队转向?用固定偏移计算目标位置并核对距离
下一篇 1小时前

相关推荐

联系我们

联系我们

1

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信
关注微信
分享本页
返回顶部