1
0
mirror of https://github.com/immich-app/immich.git synced 2025-07-16 07:24:40 +02:00

chore(ml): update pydantic (#13230)

* update pydantic

* fix typing

* remove unused import

* remove unused schema
This commit is contained in:
Mert
2024-10-13 18:00:21 -04:00
committed by GitHub
parent f29fb1655a
commit e7397f35c9
6 changed files with 186 additions and 82 deletions

View File

@ -6,7 +6,8 @@ from pathlib import Path
from socket import socket
from gunicorn.arbiter import Arbiter
from pydantic import BaseModel, BaseSettings
from pydantic import BaseModel
from pydantic_settings import BaseSettings, SettingsConfigDict
from rich.console import Console
from rich.logging import RichHandler
from uvicorn import Server
@ -14,11 +15,18 @@ from uvicorn.workers import UvicornWorker
class PreloadModelData(BaseModel):
clip: str | None
facial_recognition: str | None
clip: str | None = None
facial_recognition: str | None = None
class Settings(BaseSettings):
model_config = SettingsConfigDict(
env_prefix="MACHINE_LEARNING_",
case_sensitive=False,
env_nested_delimiter="__",
protected_namespaces=("settings_",),
)
cache_folder: Path = Path("/cache")
model_ttl: int = 300
model_ttl_poll_s: int = 10
@ -34,23 +42,17 @@ class Settings(BaseSettings):
ann_tuning_level: int = 2
preload: PreloadModelData | None = None
class Config:
env_prefix = "MACHINE_LEARNING_"
case_sensitive = False
env_nested_delimiter = "__"
@property
def device_id(self) -> str:
return os.environ.get("MACHINE_LEARNING_DEVICE_ID", "0")
class LogSettings(BaseSettings):
model_config = SettingsConfigDict(case_sensitive=False)
immich_log_level: str = "info"
no_color: bool = False
class Config:
case_sensitive = False
_clean_name = str.maketrans(":\\/", "___", ".")