如何在GCP中从向量搜索索引删除数据点?
GCP Vertex AI向量搜索:用update_embedding删除数据点的正确操作
错误原因
你用空嵌入ID条目删除的方式不符合API要求,update_embedding不接受空值,必须明确指定目标ID并标记删除操作。
正确操作方法
1. API请求方式
构造JSON请求体时,每个待删除的数据点需包含id和delete: true字段,无需提供embedding或其他属性。示例格式:
{ "requests": [ { "update_embedding": { "id": "你的目标嵌入ID", "delete": true } } ] }
将请求发送至对应索引的updateEmbeddings端点(格式为https://REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/indexes/INDEX_ID:updateEmbeddings),并带上有效的身份认证头。
2. Python SDK方式
使用Vertex AI Python库时,调用update_embeddings方法,传入包含id和delete=True的字典列表:
from google.cloud import aiplatform aiplatform.init(project="你的项目ID", location="目标区域") index = aiplatform.MatchingEngineIndex(index_name="你的索引ID") index.update_embeddings( embeddings=[ {"id": "你的目标嵌入ID", "delete": True} ] )
注意事项
- 确保指定的ID确实存在于索引中,否则会返回ID不存在的错误。
- 批量删除可在列表中添加多个带
delete: true的条目。 - 删除请求中不要包含
embedding字段,否则会被判定为更新操作而非删除。
内容的提问来源于stack exchange,提问作者Saurav Ns
相关产品推荐
相关产品推荐

