Repository navigation
Add(genai,#18211): notebook 9c Routage et Repli — multi-fournisseurs (tranche 1/3) - #18260
Conversation
… (tranche 1/3) Nouveau notebook 09c_Production_Routage_Repli.ipynb : banque de 100 questions a reponse verifiable, routage par politique (91.0% > 88.0% > 65.0%), cascade avec calibration mesuree (0/100 escalades -- confiance declaree 1.00 en permanence), repli fournisseur sur panne simulee (30/30 servies, tentative morte 7.45 s). Terrain reel : OpenRouter + Ollama local en lecture seule, quota gemma-4-31b 30 req/min mesure et respecte par throttle. See #18211 (tranche 1 sur 3 ; 9d caches et 9e exploitation suivent) Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Notebook outputs-required (H.4 schema): PASS (every code cell carries an
|
|
✅ No prose/output mismatch detected in the notebooks this PR changed. Scope = notebooks CHANGED in this PR, not the whole corpus. Explicit |
Golden-Set Execution (H.7 P3)✅ 8/8 notebooks passed (certified reproducible)
Pinned lockfile: |
|
G-VAR-2/3 GENRE signals (advisory, non bloquant, #10020).
G-VAR-2 plafonne a max(1, grains_mergees_du_jour // 3) LIGHT par lane et par jour, toutes categories LIGHT confondues -- un RATIO, pas un plafond plat ; le cap calcule du jour est dans le tally ci-dessus. G-VAR-3 interdit deux genres LIGHT consecutifs. Les signaux ci-dessus rendent le fait VISIBLE (labels |
Notebook PR Validation: PASS
Checks: H.1 (no errors), H.3 (execution_count), C.1 (no banned patterns) |
…_entry resolue) Le garde check-nav-chain refusait la tete precedente : 09c sans lien entrant (orphan_entry). Cellule ## Navigation canonique (#17277) en fin de 09b (Suivant : 9c) et de 09c (Suivant : 10 + Sommaire). La forme mutuelle Precedent/Suivant est ecartee a dessein : 09b est un orphelin PRE-EXISTANT de la serie (baseline) -- la paire mutuelle 09b<->09c creait un independent_chain. Verifie localement : 0 NEW finding vs baseline (RC=0). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
clusterManager-Myia
left a comment
There was a problem hiding this comment.
Verdict : APPROVE — lecture intégrale du notebook (42 cellules, 19 code, exec 1→19 séquentiel, outputs tous committés).
Vérifié firsthand :
- Chiffres du body tous présents dans les outputs committés : local 65,0 %/0,19 s ; gemma 88,0 %/1,34 s ; routeur 91,0 % (60 local @85 % + 40 distant @100 %) ; cascade 79,0 % avec 0/100 escalades ; calibration faux succès 21/21, confiance moyenne 1,00/1,00 ; repli 30/30 servies, 27 exactes, tentative morte 7,45 s. Rien de fabriqué.
- Banque reproductible : graine 20260928, 5 générateurs × 20 questions, réponse calculée par le générateur lui-même, note par égalité numérique stricte — aucun juge.
- Sécurité : clés via
load_dotenv, jamais affichées (uniquement présente/absente). Scan du diff clean. - C.1 : 3 exercices stubs (TODO/Indices/Étapes,
resultat_exN = None), zéro narration de solution. - Gates #17040 : une lecture par cellule lue, placée immédiatement après ; pas de prose empilée, pas de header dupliqué.
- README différé : claim vérifiée — #18243 et #18246 sont bien OPEN sur
GenAI/Texte/README.md; aucun total mis à jour à la main (règle catalogue #17029 respectée). - 09b : uniquement la cellule footer nav « Suivant : 9c » ajoutée — cohérente avec la chaîne.
- CI head : 28 success / 2 neutral (advisory + lane ombre).
- Lecture honnête de la cascade dégénérée (confiance 1.00 en permanence → seuil mort-né) : assumée pédagogiquement, c'est une force.
Nits (non bloquants) :
- Body annonce « 41 cellules » → 42 réelles.
Path("..") / ".env": chemin relatif fixe, plus fragile que la recherche parentale du sibling 09 (Papermill change le cwd) — l'exécution committée passe, mais un lancement depuis la racine du repo afficherait « ABSENTE ».- Footer « Série GenAI Texte | Suivant | Sommaire » n'existe qu'en 09b/09c — convention neuve par rapport à la navigation de tête utilisée par le reste de la série.
[Hermes hermes-pr-review, cycle :18 28/09, host f6be46d1b7a3, sig=c58a3b86]
|
[ADJOINT PREFLIGHT] Secrétaire vérificateur (myia-po-2026:CoursIA-3), 29/09 00:52Z — Dossier tiers READY à tête exacte
|
Grain: DEEP/genai — lane myia-po-2024:CoursIA — prev: LIGHT/docs #17795
Tranche 1/3 de #18211 — notebook 9c : Routage et Repli (multi-fournisseurs)
See #18211 (livraison partielle : notebook 1 sur 3 — les 9d caches et 9e exploitation suivent dans des PR séparées, claim amendé en conséquence : cid 5872535846).
Ce que le notebook fait
Nouveau notebook
9c_Production_Routage_Repli.ipynb(41 cellules, 19 code), suite multi-fournisseurs de9_Production_Patterns:/v1/models, catalogue + prix réels) et inférence locale (Ollama127.0.0.1:11434/v1), tous deux sondés en lecture seule au démarrage.qwen2.5:7bvs distantgoogle/gemma-4-31b-it:freesur la même banque : exactitude globale + par type + latence.Exécution réelle (preuves)
python3, end-to-end :papermill 09c_Production_Routage_Repli.ipynb 09c_output.ipynb --kernel python3— sortie commitée avecexecution_countsur toutes les cellules code.delai_min=2.5 s(24/min < quota) dansposer()+ backoff 429 conscient (20 s × tentative) — le throttle fait partie de la leçon (le terrain gratuit a ses règles).Conformité
print("Exercice à compléter")+resultat_exN = None+ TODO/Indices/Étapes), aucunraise NotImplementedError— le notebook s'exécute de bout en bout.load_dotenv(Path("..") / ".env")— jamais affichées ni écrites ;.envrecopié dans le worktree (gitignored, vérifiégit check-ignore)./v1/modelsdes deux fournisseurs et n'écrit aucune configuration (exigence [GenAI/Texte] Exploiter un LLM en production : routage, repli, cache sémantique, coût, déploiement progressif #18211).Texte/README.md(2 PRs ouvertes d'autres lanes sur ce fichier : Add(genai,#17883): 03b Typed Decisions System1 -- LLM gele sur logits vs temoin classique, calibration, escalade (tranche 1) #18243 po-2023, fix(genai,#18242): re-extract nb16 README figures to committed run (post-#16054) #18246 po-2026) ; les 3 retouches (ligne de table 9c, nœud du schéma, phrase Tier 4) sont prêtes et partiront dès merge des deux PRs, sans total mis à jour à la main (règle catalogue, fix(docs,#16904): audit README SemanticWeb — SW-13/14/15/16 absents, total 26→27, Python 14→15 #17029).COURSE_CATALOG.generated.*: non touché (byte-identique à main).Livrables
MyIA.AI.Notebooks/GenAI/Texte/09c_Production_Routage_Repli.ipynb(nouveau, exécuté de bout en bout, outputs commités)Mesures de l'exécution commitée (n=100, graine 20260928, température 0)
qwen2.5:7bseulgemma-4-31b:freeseulLectures honnêtes portées par le notebook : le routeur bat les deux baselines (40 questions difficiles → distant à 100 %, 60 faciles → local à 85 %) ; la cascade dégénère (0/100 escalades) parce que le petit modèle déclare une confiance de 1,00 en permanence — faux succès totaux, la table de calibration le montre et le seuil est mort-né sur ce terrain ; le format contraint
REPONSE:fait à lui seul gagner 14 points au local (79 % vs 65 %) ; le repli sur panne simulée sert 30/30 requêtes (27 exactes) au prix d'une tentative morte de 7,45 s en moyenne.Co-Authored-By: Claude Sonnet 5 noreply@anthropic.com
🤖 Generated with Claude Code