2024-09-28 22:21:42 +03:00
|
|
|
from enum import Enum
|
2025-08-09 01:33:11 +03:00
|
|
|
from typing import Optional
|
2024-09-28 22:21:42 +03:00
|
|
|
|
2025-08-09 01:33:11 +03:00
|
|
|
from pydantic import Field
|
2024-09-28 22:21:42 +03:00
|
|
|
|
|
|
|
|
from ..base import FrigateBaseModel
|
|
|
|
|
from ..env import EnvString
|
|
|
|
|
|
2025-08-09 01:33:11 +03:00
|
|
|
__all__ = ["GenAIConfig", "GenAIProviderEnum"]
|
2024-09-28 22:21:42 +03:00
|
|
|
|
|
|
|
|
|
|
|
|
|
class GenAIProviderEnum(str, Enum):
|
|
|
|
|
openai = "openai"
|
2024-10-01 22:57:40 +03:00
|
|
|
azure_openai = "azure_openai"
|
2024-09-28 22:21:42 +03:00
|
|
|
gemini = "gemini"
|
|
|
|
|
ollama = "ollama"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class GenAIConfig(FrigateBaseModel):
|
2025-08-09 01:33:11 +03:00
|
|
|
"""Primary GenAI Config to define GenAI Provider."""
|
2024-09-28 22:21:42 +03:00
|
|
|
|
|
|
|
|
api_key: Optional[EnvString] = Field(default=None, title="Provider API key.")
|
|
|
|
|
base_url: Optional[str] = Field(default=None, title="Provider base url.")
|
|
|
|
|
model: str = Field(default="gpt-4o", title="GenAI model.")
|
2025-08-11 22:17:25 +03:00
|
|
|
provider: GenAIProviderEnum | None = Field(default=None, title="GenAI provider.")
|