mirror of
https://github.com/blakeblackshear/frigate.git
synced 2026-04-19 23:08:08 +02:00
Add config validators (#22704)
* add validator for detect width and height require both or neither * coerce semantic search model string to enum Built-in model names (jinav1, jinav2) get converted to the enum, genai provider names that don't match stay as plain strings and follow the existing validation path * formatting
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
from enum import Enum
|
||||
from typing import Dict, List, Optional, Union
|
||||
|
||||
from pydantic import ConfigDict, Field
|
||||
from pydantic import ConfigDict, Field, field_validator
|
||||
|
||||
from .base import FrigateBaseModel
|
||||
|
||||
@@ -178,6 +178,17 @@ class SemanticSearchConfig(FrigateBaseModel):
|
||||
title="Semantic search model or GenAI provider name",
|
||||
description="The embeddings model to use for semantic search (for example 'jinav1'), or the name of a GenAI provider with the embeddings role.",
|
||||
)
|
||||
|
||||
@field_validator("model", mode="before")
|
||||
@classmethod
|
||||
def coerce_model_enum(cls, v):
|
||||
if isinstance(v, str):
|
||||
try:
|
||||
return SemanticSearchModelEnum(v)
|
||||
except ValueError:
|
||||
return v
|
||||
return v
|
||||
|
||||
model_size: str = Field(
|
||||
default="small",
|
||||
title="Model size",
|
||||
|
||||
Reference in New Issue
Block a user