Spaces:
Build error
Build error
| """ | |
| Configuration globale de la plateforme, chargΓ©e depuis les variables d'environnement. | |
| Utilise pydantic-settings (CLAUDE.md Β§2, Β§7) : | |
| - les valeurs sont lues depuis os.environ / fichier .env au moment de l'instanciation | |
| - l'objet `settings` est importΓ© partout dans l'application | |
| - dans les tests : monkeypatch.setattr(config, "settings", ...) pour surcharger | |
| """ | |
| # 1. stdlib | |
| from pathlib import Path | |
| # 2. third-party | |
| from pydantic import ConfigDict | |
| from pydantic_settings import BaseSettings | |
| # Racine du dΓ©pΓ΄t β rΓ©solue depuis l'emplacement absolu de ce fichier. | |
| # config.py se trouve dans backend/app/ ; 3 parents remontent Γ la racine. | |
| # .resolve() garantit un chemin absolu mΓͺme si __file__ est relatif au CWD. | |
| _REPO_ROOT = Path(__file__).resolve().parent.parent.parent | |
| class Settings(BaseSettings): | |
| """Paramètres d'application lus depuis les variables d'environnement. | |
| Toutes les clΓ©s API sont optionnelles (None si non configurΓ©es). | |
| Elles ne sont jamais loguΓ©es ni exportΓ©es (R06). | |
| """ | |
| model_config = ConfigDict( | |
| env_file=".env", | |
| extra="ignore", | |
| ) | |
| # ββ Serveur ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ | |
| base_url: str = "http://localhost:8000" | |
| data_dir: Path = Path("data") | |
| cors_origins: list[str] = ["*"] | |
| # ββ Chemins des ressources statiques βββββββββββββββββββββββββββββββββββββ | |
| # CalculΓ©s depuis la racine du dΓ©pΓ΄t ; surchargeables via variables d'env. | |
| profiles_dir: Path = _REPO_ROOT / "profiles" | |
| prompts_dir: Path = _REPO_ROOT / "prompts" | |
| # ββ Base de donnΓ©es βββββββββββββββββββββββββββββββββββββββββββββββββββββββ | |
| database_url: str = "sqlite+aiosqlite:///./iiif_studio.db" | |
| # ββ Pipeline IA ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ | |
| ai_max_concurrent: int = 3 # jobs IA simultanΓ©s par corpus run | |
| # ββ Fournisseurs IA (R06 β clΓ©s depuis l'environnement uniquement) ββββββββ | |
| # Chaque clΓ© est optionnelle. Le backend dΓ©tecte automatiquement quels | |
| # providers sont disponibles selon les clΓ©s prΓ©sentes. Pas de AI_PROVIDER | |
| # global : le provider est choisi par corpus depuis l'interface. | |
| google_ai_studio_api_key: str | None = None | |
| vertex_service_account_json: str | None = None | |
| mistral_api_key: str | None = None | |
| settings: Settings = Settings() | |