File size: 1,057 Bytes
0db822c
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
from typing import Optional
from pydantic_settings import BaseSettings, SettingsConfigDict


class Settings(BaseSettings):
    model_config = SettingsConfigDict(
        # env_file is used for local dev (outside Docker).
        # Inside Docker, env vars are injected directly via docker-compose env_file/environment.
        env_file=".env",
        env_file_encoding="utf-8",
        case_sensitive=False,
        # If a var is passed as "" (empty string), treat it as unset and use the default.
        # This prevents a misconfigured docker-compose from silently clearing secret keys.
        env_ignore_empty=True,
    )

    # Model
    model_path: str = "outputs/checkpoints/merged_model"
    device: Optional[str] = None  # None → auto-detect (cuda if available, else cpu)

    # Gemini
    gemini_api_key: Optional[str] = None
    gemini_model: str = "gemini-2.5-flash"

    # Upload guard (enforced in Python before touching disk)
    max_upload_mb: int = 200

    # Server
    host: str = "0.0.0.0"
    port: int = 8000


settings = Settings()