Chroma fixes (#13902)

* Ensure descriptions saved in chroma are non-empty

* delete only existing ids in event cleanup

* add debug logging
This commit is contained in:
Josh Hawkins 2024-09-23 07:53:19 -05:00 committed by GitHub
parent fe57f7f489
commit 0f813962be
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 13 additions and 5 deletions

View File

@ -126,9 +126,9 @@ class Embeddings:
thumbnails["ids"].append(event.id)
thumbnails["images"].append(img)
thumbnails["metadatas"].append(metadata)
if event.data.get("description") is not None:
if description := event.data.get("description", "").strip():
descriptions["ids"].append(event.id)
descriptions["documents"].append(event.data["description"])
descriptions["documents"].append(description)
descriptions["metadatas"].append(metadata)
if len(thumbnails["ids"]) > 0:

View File

@ -177,7 +177,7 @@ class EmbeddingMaintainer(threading.Thread):
camera_config, thumbnails, metadata
)
if description is None:
if not description:
logger.debug("Failed to generate description for %s", event.id)
return

View File

@ -230,7 +230,15 @@ class EventCleanup(threading.Thread):
Event.delete().where(Event.id << chunk).execute()
if self.config.semantic_search.enabled:
self.embeddings.thumbnail.delete(ids=chunk)
self.embeddings.description.delete(ids=chunk)
for collection in [
self.embeddings.thumbnail,
self.embeddings.description,
]:
existing_ids = collection.get(ids=chunk, include=[])["ids"]
if existing_ids:
collection.delete(ids=existing_ids)
logger.debug(
f"Deleted {len(existing_ids)} embeddings from {collection.__class__.__name__}"
)
logger.info("Exiting event cleanup...")