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:
@@ -21,8 +21,12 @@
|
||||
- Sans clé (`AI_GENERATION=off`, défaut) : l'assistant fonctionne en **mode extractif** —
|
||||
il montre les meilleurs extraits sourcés et une synthèse templatée, sans LLM. La démo,
|
||||
la CI et un déploiement sans budget API restent pleinement fonctionnels et honnêtes.
|
||||
- Avec clé (`AI_GENERATION=api` + `AI_API_KEY`) : rédaction par un LLM externe, sur textes
|
||||
DÉJÀ anonymisés (D4), avec l'obligation de citer les extraits fournis — jamais au-delà.
|
||||
- Avec clé (`AI_GENERATION=api` + `AI_API_KEY`, modèle configurable par `AI_MODEL`,
|
||||
défaut `claude-opus-4-8`) : rédaction par le SDK officiel Anthropic, sur textes DÉJÀ
|
||||
anonymisés (D4), avec l'obligation de citer les extraits fournis — jamais au-delà.
|
||||
La config est validée au boot (api sans clé = refus de démarrer) ; la clé n'apparaît
|
||||
ni dans les journaux ni au `/healthz` (qui n'expose que le mode). Tout échec du LLM
|
||||
(refus, quota, réseau) retombe silencieusement sur le mode extractif.
|
||||
- La **suggestion de codes de bilan** n'utilise PAS de LLM : similarité sémantique
|
||||
(embeddings locaux) entre la description et les libellés des référentiels + les bilans
|
||||
historiques du parc. Déterministe, testable, explicable (« 9 bilans similaires »).
|
||||
|
||||
Reference in New Issue
Block a user