|
""" |
|
Configuration settings for the application |
|
""" |
|
import os |
|
from pydantic_settings import BaseSettings |
|
from dotenv import load_dotenv |
|
from pathlib import Path |
|
|
|
|
|
load_dotenv() |
|
|
|
class Settings(BaseSettings): |
|
"""Application settings""" |
|
|
|
APP_NAME: str = "VizWiz VQA API" |
|
DEBUG: bool = os.getenv("DEBUG", "False").lower() == "true" |
|
|
|
|
|
MODEL_PATH: str = os.getenv("MODEL_PATH", "./models/vqa_model_best.pt") |
|
TEXT_MODEL: str = os.getenv("TEXT_MODEL", "bert-base-uncased") |
|
VISION_MODEL: str = os.getenv("VISION_MODEL", "google/vit-base-patch16-384") |
|
HUGGINGFACE_TOKEN: str = os.getenv("HUGGINGFACE_TOKEN", "") |
|
|
|
|
|
HF_MODEL_REPO: str = os.getenv("HF_MODEL_REPO", "dixisouls/VQA") |
|
HF_MODEL_FILENAME: str = os.getenv("HF_MODEL_FILENAME", "model.pt") |
|
|
|
|
|
MAX_UPLOAD_SIZE: int = 10 * 1024 * 1024 |
|
|
|
|
|
UPLOAD_DIR: str = os.getenv("UPLOAD_DIR", "./uploads") |
|
MAX_SESSION_AGE: int = 60 * 30 |
|
|
|
|
|
ALLOW_ORIGINS: list[str] = ["*"] |
|
|
|
|
|
PORT: int = int(os.getenv("PORT", "7860")) |
|
|
|
class Config: |
|
env_file = ".env" |
|
case_sensitive = True |
|
|
|
|
|
settings = Settings() |
|
|
|
|
|
Path(settings.UPLOAD_DIR).mkdir(parents=True, exist_ok=True) |
|
|
|
|
|
Path(os.path.dirname(settings.MODEL_PATH)).mkdir(parents=True, exist_ok=True) |