Files
TicketTracker/tickettracker/config.py
laurent 30e4b3e144 feat: dashboard web FastAPI Sprint 4
Ajout d'un dashboard lecture seule par-dessus la DB SQLite existante.

Fichiers créés :
  - tickettracker/web/queries.py   : 7 fonctions SQL (stats, compare, historique...)
  - tickettracker/web/api.py       : router /api/* JSON (FastAPI)
  - tickettracker/web/app.py       : routes HTML + Jinja2 + point d'entrée uvicorn
  - tickettracker/web/templates/   : base.html, index.html, compare.html, product.html, receipt.html
  - tickettracker/web/static/style.css : personnalisations Pico CSS
  - tests/test_web.py              : 19 tests (96 passent, 1 xfail OCR)

Fichiers modifiés :
  - requirements.txt : +fastapi, uvicorn[standard], jinja2, python-multipart, httpx
  - config.py        : +DB_PATH (lu depuis TICKETTRACKER_DB_PATH)

Lancement : python -m tickettracker.web.app

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-24 20:04:55 +01:00

48 lines
1.8 KiB
Python

"""
Configuration de TicketTracker.
Toutes les valeurs sensibles (clé API) sont lues depuis des variables
d'environnement et ne doivent jamais être codées en dur.
Variables d'environnement disponibles :
TICKETTRACKER_LLM_URL URL de l'endpoint OpenAI-compatible
TICKETTRACKER_LLM_MODEL Nom du modèle LLM
TICKETTRACKER_LLM_API_KEY Clé API (obligatoire pour Mammouth)
TICKETTRACKER_LLM_TIMEOUT Timeout en secondes (défaut : 60)
TICKETTRACKER_LLM_BATCH_SIZE Taille des batchs de normalisation (défaut : 20)
"""
import os
from pathlib import Path
# ---------------------------------------------------------------------------
# Base de données
# ---------------------------------------------------------------------------
from tickettracker.db.schema import DEFAULT_DB_PATH as _DEFAULT_DB_PATH
# Chemin vers la base SQLite (surchargeable par variable d'environnement)
DB_PATH: Path = Path(os.environ.get("TICKETTRACKER_DB_PATH", str(_DEFAULT_DB_PATH)))
# ---------------------------------------------------------------------------
# LLM
# ---------------------------------------------------------------------------
# URL de l'endpoint compatible OpenAI (Mammouth)
LLM_URL: str = os.environ.get(
"TICKETTRACKER_LLM_URL",
"https://api.mammouth.ai/v1/chat/completions",
)
# Modèle à utiliser
LLM_MODEL: str = os.environ.get("TICKETTRACKER_LLM_MODEL", "mistral-small-3.2-24b-instruct")
# Clé API — jamais de valeur par défaut sensible ici
LLM_API_KEY: str = os.environ.get("TICKETTRACKER_LLM_API_KEY", "")
# Timeout par appel en secondes (le modèle local peut être lent)
LLM_TIMEOUT: int = int(os.environ.get("TICKETTRACKER_LLM_TIMEOUT", "60"))
# Nombre d'articles traités par appel LLM
LLM_BATCH_SIZE: int = int(os.environ.get("TICKETTRACKER_LLM_BATCH_SIZE", "20"))