[EF-08] Service d'inférence : prévision servie et signal de dépassement #37
Labels
No labels
Compat/Breaking
EC01
EC02
EC03
EC04
EC05
EC06
Kind/BDD
Kind/Back
Kind/Bug
Kind/CICD
Kind/Cloud
Kind/Contenu
Kind/Data
Kind/Documentation
Kind/Enhancement
Kind/Feature
Kind/Front
Kind/IA
Kind/Infra
Kind/Monitoring
Kind/Security
Kind/Testing
Portée/Post-jury
Priority
Critical
Priority
High
Priority
Low
Priority
Medium
Reviewed
Confirmed
Reviewed
Duplicate
Reviewed
Invalid
Reviewed
Won't Fix
Status
Abandoned
Status
Blocked
Status
Need More Info
ops/alerte
No milestone
No project
No assignees
3 participants
Notifications
Total time spent: 8 hours
Due date
justine
8 hours
Depends on
#36 [EF-07] Entraînement du modèle et promotion
g2/enervision
#46 [PO] Glossaire métier et référentiel des sept sites
g2/enervision
Reference
g2/enervision#37
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Exigence couverte
EF-07, EF-08, ENF-04
Épreuve servie
EC06 · IA et automatisation
Charge estimée
2 j.h
Ce qu'on veut obtenir
Servir en ligne la prévision H+1 du modèle promu et signaler un dépassement
prévisionnel de la capacité d'un site avant l'heure concernée.
/!\ du nouveau a été ajouté au contenu du ticket cf https://10.105.200.41/g2/enervision/issues/37#issuecomment-3254
Critères d'acceptation
Comment on le vérifie
Tests tests/unit/inference/, tests/integration/inference/
Commande pytest tests/unit/inference tests/integration/inference
Preuve un cas de dépassement déclenché sur données réelles, avec l'horodatage du signal, et le relevé de latence sur la route de l'API, pas sur le job.
Hors périmètre
Repriorisation du 03/09 : réduit dans la fenêtre à prévision H+1 + signal de dépassement (EF-07, EF-08). La détection de dérive est sortie et suivie dans #117, hors fenêtre (
Portée/Post-jury). Voirdocs/BACKLOG.mdetdocs/PRD.md§8.[EF-08] Service d'inférence, dépassements et dériveto [EF-08] Service d'inférence : prévision servie et signal de dépassementRecadré sur la repriorisation du 03/09 : le titre et le périmètre ne couvrent plus la détection de dérive, sortie en #117 (Portée/Post-jury). Rattaché EF-07 (référence de prévision servie) en plus d'EF-08.
lenaic referenced this issue2026-09-04 13:43:09 +00:00
Justine, trois de tes six remarques sur la #161 tombent sur ce ticket et pas sur
la fiche. C'est le tien, donc je propose la rédaction plutôt que de l'éditer.
Tu appliques, tu réécris, ou tu dis non.
Le contexte est l'ADR 0012,
mise à jour ce matin après ta relecture.
CA1, aujourd'hui
CA1, proposé
Tu l'as dit toi même : c'est probablement le seul montage qui tient les 200 ms.
La cible ne change pas, c'est le chargement du modèle qui sort du chemin de
requête. Écrit comme aujourd'hui, l'écart entre le ticket et ce qui sera montré
se lirait au jury.
CA3, aujourd'hui
CA3, proposé
Ton constat était juste, le critère n'avait aucun emplacement écrit. C'est
l'emplacement que je propose de fixer, pas le critère.
CA4, aujourd'hui
CA4, proposé (une phrase ajoutée, le critère est inchangé)
Et la ligne de preuve
Sans cette précision, quelqu'un chronométrera le job et trouvera bien plus que
200 ms, alors que ce n'est pas ce que le critère mesure.
Rien de tout ça ne touche au périmètre ni à la charge. Si tu es d'accord, tu
peux appliquer tel quel ; si un point te gêne, dis lequel et je réécris.
Fait en plus du périmètre initial, et pourquoi
Le #38 a été fermé sans que la convergence de l'API soit faite :
developneporte aucun commit qui la contienne, et les quatre sorties du tableau de bord
servaient toujours une prévision inventée dans
fixtures.py. Ce travail n'ayantplus de ticket, il est repris ici.
Une seule source.
SiteOut,SyntheseParcOut,SerieSiteOutetSerieParcOutlisent désormaispublic.prevision, parrepository.sitesquiinterroge la table une fois par requête et pose la ligne sur
SiteEtat.Sans ça, la route
/v1/previsionsservait le vrai chiffre pendant que lesécrans en affichaient un autre : deux vérités sur la même notion, sans que
l'écran puisse dire laquelle il montre.
Une prévision absente vaut
null, jamais zéro. C'est la règle que leglossaire §2 pose déjà pour la consommation, appliquée à la prévision :
nulldit que la passe horaire n'a rien écrit, pas que le site ne consommera rien.
D'où
prevision_kw,reference_kwetmarge_kwnullables,depassement_prevuà
falsesans prévision — on ne signale que ce qu'on a prévu —, etsites_prevussur la synthèse, pour qu'une somme partielle dise qu'elle l'est.Deux corrections d'affichage que le branchement a rendues nécessaires :
formaterKwrend—pour une valeur absente au lieu de0, et la courbe d'unsite ne lit plus
prevision.valeur_kwsans garde — sur unnullelle levait etvidait le composant entier.
instant_depassementpasse à l'heure ronde. Le jeu portait 17 h 22, uneminute que rien ne fonde : le modèle prévoit une moyenne horaire et
public.previsionn'a qu'une ligne par site et par heure.Ce que l'API n'importe pas, et délibérément :
PrevisionH1. Le contrat rendreference_kwobligatoire pour arrêter un producteur ; l'opposer à une lignelue ferait refuser de servir toute ligne antérieure à ce ticket. L'API a son
modèle de lecture,
PrevisionServie. Le préambule depackages/contractsaffirmait l'inverse : il est corrigé.