akoulapure's picture
Initial Deployment: Best ViT Model
228add1 verified
Raw
History Blame Contribute Delete
1.51 kB
"""
Application configuration using Pydantic Settings.
Reads from environment variables and .env file.
"""
import os
from pathlib import Path
from functools import lru_cache
from pydantic_settings import BaseSettings
class Settings(BaseSettings):
"""Application configuration from environment variables."""
# App
app_name: str = "Cattle Breed Classifier API"
app_version: str = "1.0.0"
debug: bool = False
# Model
model_path: str = os.environ.get(
"MODEL_PATH",
str(Path(__file__).resolve().parents[3] / "models" / "cattle_breed_classifier_full_model.pth")
)
model_name: str = os.environ.get("MODEL_NAME", "resnet")
model_version: str = os.environ.get("MODEL_VERSION", "v1.0")
# Metadata
metadata_path: str = os.environ.get(
"METADATA_PATH",
str(Path(__file__).resolve().parents[3] / "data" / "breed_metadata.csv")
)
classes_path: str = os.environ.get(
"CLASSES_PATH",
str(Path(__file__).resolve().parents[3] / "models" / "classes.txt")
)
# Image
image_size: int = 224
max_image_size_mb: float = 10.0
# Server
host: str = "0.0.0.0"
port: int = 8000
cors_origins: list[str] = ["*"]
# Inference
top_k: int = 3
url_timeout: int = 10
class Config:
env_file = ".env"
env_file_encoding = "utf-8"
case_sensitive = False
@lru_cache()
def get_settings() -> Settings:
"""Get cached settings instance."""
return Settings()