Genai bugfix (#14880)

* Fix genai init when disabled at global level

* use genai config for class init
This commit is contained in:
Josh Hawkins 2024-11-09 07:48:53 -06:00 committed by GitHub
parent 580f35112e
commit 143bab87f1
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 14 additions and 7 deletions

View File

@ -62,7 +62,7 @@ class EmbeddingMaintainer(threading.Thread):
self.requestor = InterProcessRequestor()
self.stop_event = stop_event
self.tracked_events = {}
self.genai_client = get_genai_client(config.genai)
self.genai_client = get_genai_client(config)
def run(self) -> None:
"""Maintain a SQLite-vec database for semantic search."""

View File

@ -6,7 +6,7 @@ from typing import Optional
from playhouse.shortcuts import model_to_dict
from frigate.config import CameraConfig, GenAIConfig, GenAIProviderEnum
from frigate.config import CameraConfig, FrigateConfig, GenAIConfig, GenAIProviderEnum
from frigate.models import Event
PROVIDERS = {}
@ -52,12 +52,19 @@ class GenAIClient:
return None
def get_genai_client(genai_config: GenAIConfig) -> Optional[GenAIClient]:
def get_genai_client(config: FrigateConfig) -> Optional[GenAIClient]:
"""Get the GenAI client."""
load_providers()
provider = PROVIDERS.get(genai_config.provider)
if provider:
return provider(genai_config)
genai_config = config.genai
genai_cameras = [
c for c in config.cameras.values() if c.enabled and c.genai.enabled
]
if genai_cameras:
load_providers()
provider = PROVIDERS.get(genai_config.provider)
if provider:
return provider(genai_config)
return None