mirror of
https://github.com/blakeblackshear/frigate.git
synced 2026-03-10 10:33:11 +03:00
Fix genai (#22203)
Some checks failed
CI / AMD64 Build (push) Has been cancelled
CI / ARM Build (push) Has been cancelled
CI / Jetson Jetpack 6 (push) Has been cancelled
CI / AMD64 Extra Build (push) Has been cancelled
CI / ARM Extra Build (push) Has been cancelled
CI / Synaptics Build (push) Has been cancelled
CI / Assemble and push default build (push) Has been cancelled
Some checks failed
CI / AMD64 Build (push) Has been cancelled
CI / ARM Build (push) Has been cancelled
CI / Jetson Jetpack 6 (push) Has been cancelled
CI / AMD64 Extra Build (push) Has been cancelled
CI / ARM Extra Build (push) Has been cancelled
CI / Synaptics Build (push) Has been cancelled
CI / Assemble and push default build (push) Has been cancelled
* fix genai leak * Add fix for value error in embedding * Cleanup
This commit is contained in:
parent
c687aa5119
commit
720e949fef
@ -103,16 +103,19 @@ class ObjectDescriptionProcessor(PostProcessorApi):
|
|||||||
logger.debug(f"{camera} sending early request to GenAI")
|
logger.debug(f"{camera} sending early request to GenAI")
|
||||||
|
|
||||||
self.early_request_sent[data["id"]] = True
|
self.early_request_sent[data["id"]] = True
|
||||||
|
# Copy thumbnails to avoid holding references after cleanup
|
||||||
|
thumbnails_copy = [
|
||||||
|
data["thumbnail"][:] if data.get("thumbnail") else None
|
||||||
|
for data in self.tracked_events[data["id"]]
|
||||||
|
if data.get("thumbnail")
|
||||||
|
]
|
||||||
threading.Thread(
|
threading.Thread(
|
||||||
target=self._genai_embed_description,
|
target=self._genai_embed_description,
|
||||||
name=f"_genai_embed_description_{event.id}",
|
name=f"_genai_embed_description_{event.id}",
|
||||||
daemon=True,
|
daemon=True,
|
||||||
args=(
|
args=(
|
||||||
event,
|
event,
|
||||||
[
|
thumbnails_copy,
|
||||||
data["thumbnail"]
|
|
||||||
for data in self.tracked_events[data["id"]]
|
|
||||||
],
|
|
||||||
),
|
),
|
||||||
).start()
|
).start()
|
||||||
|
|
||||||
@ -172,8 +175,13 @@ class ObjectDescriptionProcessor(PostProcessorApi):
|
|||||||
embed_image = (
|
embed_image = (
|
||||||
[snapshot_image]
|
[snapshot_image]
|
||||||
if event.has_snapshot and source == "snapshot"
|
if event.has_snapshot and source == "snapshot"
|
||||||
|
# Copy thumbnails to avoid holding references
|
||||||
else (
|
else (
|
||||||
[data["thumbnail"] for data in self.tracked_events[event_id]]
|
[
|
||||||
|
data["thumbnail"][:] if data.get("thumbnail") else None
|
||||||
|
for data in self.tracked_events[event_id]
|
||||||
|
if data.get("thumbnail")
|
||||||
|
]
|
||||||
if len(self.tracked_events.get(event_id, [])) > 0
|
if len(self.tracked_events.get(event_id, [])) > 0
|
||||||
else [thumbnail]
|
else [thumbnail]
|
||||||
)
|
)
|
||||||
@ -276,8 +284,13 @@ class ObjectDescriptionProcessor(PostProcessorApi):
|
|||||||
embed_image = (
|
embed_image = (
|
||||||
[snapshot_image]
|
[snapshot_image]
|
||||||
if event.has_snapshot and camera_config.objects.genai.use_snapshot
|
if event.has_snapshot and camera_config.objects.genai.use_snapshot
|
||||||
|
# Copy thumbnails to avoid holding references after cleanup
|
||||||
else (
|
else (
|
||||||
[data["thumbnail"] for data in self.tracked_events[event.id]]
|
[
|
||||||
|
data["thumbnail"][:] if data.get("thumbnail") else None
|
||||||
|
for data in self.tracked_events[event.id]
|
||||||
|
if data.get("thumbnail")
|
||||||
|
]
|
||||||
if num_thumbnails > 0
|
if num_thumbnails > 0
|
||||||
else [thumbnail]
|
else [thumbnail]
|
||||||
)
|
)
|
||||||
|
|||||||
@ -679,4 +679,7 @@ class EmbeddingMaintainer(threading.Thread):
|
|||||||
if not self.config.semantic_search.enabled:
|
if not self.config.semantic_search.enabled:
|
||||||
return
|
return
|
||||||
|
|
||||||
self.embeddings.embed_thumbnail(event_id, thumbnail)
|
try:
|
||||||
|
self.embeddings.embed_thumbnail(event_id, thumbnail)
|
||||||
|
except ValueError:
|
||||||
|
logger.warning(f"Failed to embed thumbnail for event {event_id}")
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user