open-webui/backend/open_webui/retrieval/vector
Classic298 eb38389636
fix: delete Qdrant points by ID so memory deletions don't orphan vectors (#25495)
The Qdrant backends implemented delete(ids=...) as a payload filter on
metadata.id, but points are stored with the item id as the Qdrant point id
(see _create_points), and not every point carries an id in its payload.
Memory points store only {created_at} in metadata (KB metadata embeddings
likewise), so deleting a single memory matched nothing and left an orphaned
vector that kept being injected into RAG context.

Delete by point id instead: PointIdsList for the standard backend, and a
tenant-scoped HasIdCondition for multitenancy (point ids are unique, so tenant
isolation is preserved). Filter-based deletion is unchanged.

Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-01 14:13:46 -07:00
..
dbs fix: delete Qdrant points by ID so memory deletions don't orphan vectors (#25495) 2026-06-01 14:13:46 -07:00
async_client.py chore: format 2026-04-14 17:27:31 -05:00
factory.py feat: add support for Valkey vector database (#24769) 2026-06-01 12:20:01 -07:00
main.py refac: modernize type annotations (PEP 604 / PEP 585) 2026-05-12 17:10:15 +09:00
type.py feat: add support for Valkey vector database (#24769) 2026-06-01 12:20:01 -07:00
utils.py chore: format 2026-04-14 17:27:31 -05:00