diff --git a/frigate/embeddings/embeddings.py b/frigate/embeddings/embeddings.py index 9c8d4abbd..b5b166b00 100644 --- a/frigate/embeddings/embeddings.py +++ b/frigate/embeddings/embeddings.py @@ -176,6 +176,7 @@ class Embeddings: "processed_objects": 0, "total_objects": 0, "time_remaining": 0, + "status": "indexing", } self.requestor.send_data(UPDATE_EMBEDDINGS_REINDEX_PROGRESS, totals) @@ -255,6 +256,8 @@ class Embeddings: "Embedded %d thumbnails and %d descriptions in %s seconds", totals["thumbnails"], totals["descriptions"], - time.time() - st, + round(time.time() - st, 1), ) + totals["status"] = "completed" + self.requestor.send_data(UPDATE_EMBEDDINGS_REINDEX_PROGRESS, totals) diff --git a/web/src/pages/Explore.tsx b/web/src/pages/Explore.tsx index e81889fb0..4aebaefd1 100644 --- a/web/src/pages/Explore.tsx +++ b/web/src/pages/Explore.tsx @@ -195,13 +195,18 @@ export default function Explore() { const { payload: reindexProgress } = useEmbeddingsReindexProgress(); - const embeddingsReindexing = useMemo( - () => - reindexProgress - ? reindexProgress.total_objects - reindexProgress.processed_objects > 0 - : undefined, - [reindexProgress], - ); + const embeddingsReindexing = useMemo(() => { + if (reindexProgress) { + switch (reindexProgress.status) { + case "indexing": + return true; + case "completed": + return false; + default: + return undefined; + } + } + }, [reindexProgress]); // model states @@ -320,7 +325,8 @@ export default function Explore() { Tracked objects processed: - {reindexProgress.processed_objects} + {reindexProgress.processed_objects} /{" "} + {reindexProgress.total_objects} diff --git a/web/src/types/ws.ts b/web/src/types/ws.ts index 238ef4a8a..397b213f6 100644 --- a/web/src/types/ws.ts +++ b/web/src/types/ws.ts @@ -68,6 +68,7 @@ export type EmbeddingsReindexProgressType = { processed_objects: number; total_objects: number; time_remaining: number; + status: string; }; export type ToggleableSetting = "ON" | "OFF";