mirror of
https://github.com/siop-spelev/siop2.git
synced 2026-08-08 12:41:54 +00:00
feat(r5.1): clé API de génération configurable (ADR-004 §3 en actes)
Demande du référent : la génération opt-in devient réellement configurable. AI_GENERATION=off|api, AI_API_KEY (exigée en mode api — le boot refuse sinon, jamais loguée, /healthz n'expose que le mode), AI_MODEL (défaut claude-opus-4-8). generation.py : interface Generateur — GenerateurExtractif (contrat de base sans LLM) et GenerateurAPI (SDK officiel anthropic, dépendance optionnelle --extra generation, absente des tests/CI). Consigne : citations [n] obligatoires depuis les extraits anonymisés, jamais d'invention, rappel de validation humaine. Tout échec (refus du modèle, quota, réseau) retombe silencieusement sur l'extractif. 5 tests ajoutés (19 pytest) + .env.example. Vérifié en réel : boot refusé api-sans-clé, générateur construit, healthz sans secret. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -12,8 +12,12 @@ uv run uvicorn siop_ai.app:app --port 8000
|
||||
# CI / tests : uv sync && uv run pytest (embeddeur déterministe, aucun téléchargement)
|
||||
```
|
||||
|
||||
Variables (défauts dev dans `config.py`) : `DATABASE_URL`, `MINIO_*`,
|
||||
`AI_SERVICE_TOKEN`, `AI_EMBEDDINGS=locale|deterministe`, `AI_GENERATION=off|api`.
|
||||
Variables (défauts dev dans `config.py`, gabarit dans `.env.example`) :
|
||||
`DATABASE_URL`, `MINIO_*`, `AI_SERVICE_TOKEN`, `AI_EMBEDDINGS=locale|deterministe`,
|
||||
et la génération opt-in (ADR-004 §3) : `AI_GENERATION=off|api`, **`AI_API_KEY`**
|
||||
(exigée en mode api — le boot refuse sinon, jamais loguée ni exposée),
|
||||
`AI_MODEL` (défaut `claude-opus-4-8`). Mode api : `uv sync --extra generation`
|
||||
(SDK officiel `anthropic`) ; tout échec du LLM retombe sur le mode extractif.
|
||||
|
||||
## Ce que porte R5.1 (socle)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user