Genai docs refactor & fixes (#22175)
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

* Improve GenAI docs

* Clarify

* Fix config updating

* Implement streaming for other providers

* Set openai base url if applied

* Cast context size
This commit is contained in:
Nicolas Mowen
2026-02-28 11:40:26 -06:00
committed by GitHub
parent 6a21b2952d
commit 4232cc483d
7 changed files with 624 additions and 108 deletions
+4 -5
View File
@@ -21,13 +21,12 @@ class GenAIClientManager:
"""Manages GenAI provider clients from Frigate config."""
def __init__(self, config: FrigateConfig) -> None:
self._config = config
self._tool_client: Optional[GenAIClient] = None
self._vision_client: Optional[GenAIClient] = None
self._embeddings_client: Optional[GenAIClient] = None
self._update_config()
self.update_config(config)
def _update_config(self) -> None:
def update_config(self, config: FrigateConfig) -> None:
"""Build role clients from current Frigate config.genai.
Called from __init__ and can be called again when config is reloaded.
@@ -40,12 +39,12 @@ class GenAIClientManager:
self._vision_client = None
self._embeddings_client = None
if not self._config.genai:
if not config.genai:
return
load_providers()
for _name, genai_cfg in self._config.genai.items():
for _name, genai_cfg in config.genai.items():
if not genai_cfg.provider:
continue
provider_cls = PROVIDERS.get(genai_cfg.provider)