mirror of
https://github.com/blakeblackshear/frigate.git
synced 2026-02-15 07:35:27 +03:00
Cleanup
This commit is contained in:
parent
72126e515b
commit
4eb6cd3042
@ -1,6 +1,5 @@
|
|||||||
"""Facilitates communication between processes."""
|
"""Facilitates communication between processes."""
|
||||||
|
|
||||||
import logging
|
|
||||||
from enum import Enum
|
from enum import Enum
|
||||||
from typing import Callable
|
from typing import Callable
|
||||||
|
|
||||||
@ -8,8 +7,6 @@ import zmq
|
|||||||
|
|
||||||
SOCKET_REP_REQ = "ipc:///tmp/cache/embeddings"
|
SOCKET_REP_REQ = "ipc:///tmp/cache/embeddings"
|
||||||
|
|
||||||
logger = logging.getLogger(__name__)
|
|
||||||
|
|
||||||
|
|
||||||
class EmbeddingsRequestEnum(Enum):
|
class EmbeddingsRequestEnum(Enum):
|
||||||
embed_description = "embed_description"
|
embed_description = "embed_description"
|
||||||
@ -25,9 +22,7 @@ class EmbeddingsResponder:
|
|||||||
|
|
||||||
def check_for_request(self, process: Callable) -> None:
|
def check_for_request(self, process: Callable) -> None:
|
||||||
while True: # load all messages that are queued
|
while True: # load all messages that are queued
|
||||||
print("Checking for embeddings requests")
|
|
||||||
has_message, _, _ = zmq.select([self.socket], [], [], 0.1)
|
has_message, _, _ = zmq.select([self.socket], [], [], 0.1)
|
||||||
print(f"has a request? {has_message}")
|
|
||||||
|
|
||||||
if not has_message:
|
if not has_message:
|
||||||
break
|
break
|
||||||
|
|||||||
@ -112,7 +112,6 @@ class Embeddings:
|
|||||||
requestor=self.requestor,
|
requestor=self.requestor,
|
||||||
device=self.config.device,
|
device=self.config.device,
|
||||||
)
|
)
|
||||||
print("completed embeddings init")
|
|
||||||
|
|
||||||
def upsert_thumbnail(self, event_id: str, thumbnail: bytes):
|
def upsert_thumbnail(self, event_id: str, thumbnail: bytes):
|
||||||
# Convert thumbnail bytes to PIL Image
|
# Convert thumbnail bytes to PIL Image
|
||||||
|
|||||||
@ -79,11 +79,14 @@ class GenericONNXEmbedding:
|
|||||||
self.downloader.ensure_model_files()
|
self.downloader.ensure_model_files()
|
||||||
else:
|
else:
|
||||||
self.downloader = None
|
self.downloader = None
|
||||||
ModelDownloader.mark_files_downloaded(
|
ModelDownloader.mark_files_state(
|
||||||
self.requestor, self.model_name, files_names
|
self.requestor,
|
||||||
|
self.model_name,
|
||||||
|
files_names,
|
||||||
|
ModelStatusTypesEnum.downloaded,
|
||||||
)
|
)
|
||||||
self._load_model_and_tokenizer()
|
self._load_model_and_tokenizer()
|
||||||
print(f"models are already downloaded for {self.model_name}")
|
logger.debug(f"models are already downloaded for {self.model_name}")
|
||||||
|
|
||||||
def _download_model(self, path: str):
|
def _download_model(self, path: str):
|
||||||
try:
|
try:
|
||||||
|
|||||||
@ -57,14 +57,12 @@ class ModelDownloader:
|
|||||||
self.download_complete = threading.Event()
|
self.download_complete = threading.Event()
|
||||||
|
|
||||||
def ensure_model_files(self):
|
def ensure_model_files(self):
|
||||||
for file in self.file_names:
|
self.mark_files_state(
|
||||||
self.requestor.send_data(
|
self.requestor,
|
||||||
UPDATE_MODEL_STATE,
|
self.model_name,
|
||||||
{
|
self.file_names,
|
||||||
"model": f"{self.model_name}-{file}",
|
ModelStatusTypesEnum.downloading,
|
||||||
"state": ModelStatusTypesEnum.downloading,
|
)
|
||||||
},
|
|
||||||
)
|
|
||||||
self.download_thread = threading.Thread(
|
self.download_thread = threading.Thread(
|
||||||
target=self._download_models,
|
target=self._download_models,
|
||||||
name=f"_download_model_{self.model_name}",
|
name=f"_download_model_{self.model_name}",
|
||||||
@ -121,15 +119,18 @@ class ModelDownloader:
|
|||||||
logger.info(f"Downloading complete: {url}")
|
logger.info(f"Downloading complete: {url}")
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def mark_files_downloaded(
|
def mark_files_state(
|
||||||
requestor: InterProcessRequestor, model_name: str, files: list[str]
|
requestor: InterProcessRequestor,
|
||||||
|
model_name: str,
|
||||||
|
files: list[str],
|
||||||
|
state: ModelStatusTypesEnum,
|
||||||
) -> None:
|
) -> None:
|
||||||
for file_name in files:
|
for file_name in files:
|
||||||
requestor.send_data(
|
requestor.send_data(
|
||||||
UPDATE_MODEL_STATE,
|
UPDATE_MODEL_STATE,
|
||||||
{
|
{
|
||||||
"model": f"{model_name}-{file_name}",
|
"model": f"{model_name}-{file_name}",
|
||||||
"state": ModelStatusTypesEnum.downloaded,
|
"state": state,
|
||||||
},
|
},
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user