fix trigger logic

This commit is contained in:
Josh Hawkins 2025-12-01 15:00:20 -06:00
parent e957f8d9f9
commit bf5e0c76fe

View File

@ -1731,7 +1731,19 @@ def create_trigger_embedding(
if event.data.get("type") != "object": if event.data.get("type") != "object":
return return
if thumbnail := get_event_thumbnail_bytes(event): # Get the thumbnail
thumbnail = get_event_thumbnail_bytes(event)
if thumbnail is None:
return JSONResponse(
content={
"success": False,
"message": f"Failed to get thumbnail for {body.data} for {body.type} trigger",
},
status_code=400,
)
# Try to reuse existing embedding from database
cursor = context.db.execute_sql( cursor = context.db.execute_sql(
""" """
SELECT thumbnail_embedding FROM vec_thumbnails WHERE id = ? SELECT thumbnail_embedding FROM vec_thumbnails WHERE id = ?
@ -1745,23 +1757,14 @@ def create_trigger_embedding(
query_embedding = row[0] query_embedding = row[0]
embedding = np.frombuffer(query_embedding, dtype=np.float32) embedding = np.frombuffer(query_embedding, dtype=np.float32)
else: else:
# Extract valid thumbnail # Generate new embedding
thumbnail = get_event_thumbnail_bytes(event)
if thumbnail is None:
return JSONResponse(
content={
"success": False,
"message": f"Failed to get thumbnail for {body.data} for {body.type} trigger",
},
status_code=400,
)
embedding = context.generate_image_embedding( embedding = context.generate_image_embedding(
body.data, (base64.b64encode(thumbnail).decode("ASCII")) body.data, (base64.b64encode(thumbnail).decode("ASCII"))
) )
if not embedding: if embedding is None or (
isinstance(embedding, (list, np.ndarray)) and len(embedding) == 0
):
return JSONResponse( return JSONResponse(
content={ content={
"success": False, "success": False,
@ -1896,7 +1899,9 @@ def update_trigger_embedding(
body.data, (base64.b64encode(thumbnail).decode("ASCII")) body.data, (base64.b64encode(thumbnail).decode("ASCII"))
) )
if not embedding: if embedding is None or (
isinstance(embedding, (list, np.ndarray)) and len(embedding) == 0
):
return JSONResponse( return JSONResponse(
content={ content={
"success": False, "success": False,