Skip to content

fix(genai,#18200): 10_LocalLlama - real OpenRouter re-exec (458 models) + c.14 prose realign - #18281

Merged
myia-ai-01 merged 3 commits into
mainfrom
fix/18144-locallama-openrouter-true
Sep 29, 2026
Merged

myia-ai-01 merged 3 commits into
mainfrom
fix/18144-locallama-openrouter-true

Conversation

@jsboige

@jsboige jsboige commented Sep 28, 2026

Copy link
Copy Markdown
Owner

Grain: MED/genai -- lane myia-po-2026:CoursIA -- prev: LIGHT/docs #18276

Sujet

Closes #18200 — re-execution OpenRouter reelle de la cellule [13] de 10_LocalLlama.ipynb pour verifier le compte catalogue (132 vs 340, post #18157), et re-alignement de la prose c.14 sur les sorties observees.

Verdict mesure (2026-09-28, kernel python3, execution reelle sur po-2026)

Endpoint (base reellement interrogee) Compte Modele configure
OpenAI (https://api.openai.com/v1) 139 gpt-5-mini trouve
openweight-llama4 (https://openrouter.ai/api/v1, token OPENROUTER_API_KEY) 458 meta-llama/llama-4-maverick trouve

Ligne cible confirmee dans les outputs commits (cellule [13]) :

[INFO] Reussite: 458 modele(s) liste(s) (endpoint=openweight-llama4)
[INFO]   -> Modele configure 'meta-llama/llama-4-maverick' trouve dans la liste.

N = 458 != 132 -> branche 3b de l'acceptance : c.14 re-ecrite avec les comptes reels + garde pedagogique « instantane date » (les catalogues derivent : 132 et 340 etaient des instantanes plus anciens, et le 132 etait le catalogue OpenAI, pas OpenRouter).

Diagnostic derive

  • Cause racine : la prose c.14 attribuait a « OpenRouter » un compte qui provenait en realite de l'endpoint nomme OpenAI (api.openai.com — 132 a la date de l'execution ancienne, 139 aujourd'hui). fix(notebook,#18144): aligner prose 340 -> 132 modeles sur 10_LocalLlama c.14 #18157 a perpetue l'attribution erronee en remplacant seulement 340 -> 132. Le vrai compte OpenRouter (458 au 2026-09-28) n'avait jamais ete mesure dans ce notebook.
  • Verdict : CAUSE_FIXED — outputs de la cellule [13] re-executes avec le token OpenRouter actif (endpoint dedie openweight-llama4 declare dans le .env du run, worktree-local, jamais commite), prose c.14 re-ecrite sur ces sorties mesurees.

Preuves

  • Zero cellule de code source modifiee (acceptance 4) — verif programmatique : seules cells[14].source (markdown) et les outputs/execution_count des cellules [3,6,9,10,13] different d'origin/main.
  • Execution reelle kernel python3 (base kernel du notebook), prefixe [0..13] execute — les cellules [14+] conservent leurs outputs precedents (portee = cellule [13], per acceptance 1).
  • Pre-commit H.3 vert (execution_count non-null + outputs sur chaque cellule code executee).
  • check_unaddressed_nits.py clean apres push.

Etats d'execution non caches

  • local-mini-v2 (127.0.0.1:8185) : serveur local c.911 non demarre sur po-2026 au moment du run — erreur loguee et gerée par le code du notebook (pas d'exception, le parcours continue). Le serveur est une infra documentee « a demarrer separement » ; le demarrer ici entrerait en contention GPU avec l'embedding server partage (hors scope du grain).
  • L'env machine exporte OPENAI_BASE_URL (proxy vLLM 192.168.0.47:5002) — sanitise dans l'env du kernel pour que le .env du notebook soit la source de verite (load_dotenv n'override pas l'existant) ; sans cela l'endpoint 1 interrogait le proxy (401).
  • L'endpoint 1 charge gpt-5-mini (valeur courante du .env GenAI) — l'execution ancienne avait gpt-5.2 ; la derive est honnetement refletee dans les outputs.

See #18144 (campagne ouverte), See #18157 (recommandation : close as superseded — le 132 qu'elle commit etait le catalogue OpenAI, pas OpenRouter ; commentaire depose).

🤖 Generated with Claude Code

… + c.14 prose realign

Cell [13] re-executed with a dedicated openweight-llama4 endpoint (OPENROUTER_API_KEY)
in a worktree-local .env: OpenRouter catalog = 458 models, OpenAI catalog = 139.
The committed 132 was OpenAI's catalog misattributed to OpenRouter (#18144/#18157).
c.14 rewritten on measured outputs; zero code-cell source changes (verified).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@github-actions

Copy link
Copy Markdown
Contributor

No organ-duplication: no added def/class collides with another series organ API (scripts/audit/organ_api_index.yaml).

Detector: python scripts/audit/detect_organ_duplication.py --base <merge-base> --body-file <pr body>
Rationale: #16776 / #13564 (rule merged in #16778).

@github-actions

Copy link
Copy Markdown
Contributor

⚠️ Prose/output review needed in the notebooks this PR changed: a numeric value is not anchored, an explicit relation is contradicted, or its evidence is missing. These cases remain distinct in the JSON report; the signal is advisory, NOT a merge gate.

Scope = notebooks CHANGED in this PR, not the whole corpus. Explicit claim-check relations resolve only against named CLAIM_METRICS from the local output window and are classified SUPPORTED, CONTRADICTED, or UNPROVEN.
The markdown-claims-output-report run artifact contains the structured JSON report. See python scripts/check_markdown_claims_output.py --help for re-running locally.
Detector rationale: c.290 / c.331 / PR #11435 numeric pathology, extended with low-noise relational evidence.

@github-actions github-actions Bot added the consecutive-code-cells Modified notebook has >=2 consecutive code cells (#12797) label Sep 28, 2026
@github-actions

Copy link
Copy Markdown
Contributor

Notebook PR Validation: PASS

  • Notebooks checked: 1
  • Code cells validated: 23
  • Result: All passed

Checks: H.1 (no errors), H.3 (execution_count), C.1 (no banned patterns)
Non-Python kernels (.NET/Lean): C.1 + errors only (execution_count advisory)
QuantConnect notebooks: C.1 + errors only (require QC Cloud for execution)

@github-actions

Copy link
Copy Markdown
Contributor

Notebook outputs-required (H.4 schema): PASS (every code cell carries an outputs: list)

@github-actions

github-actions Bot commented Sep 28, 2026 •

Copy link
Copy Markdown
Contributor

Golden-Set Execution (H.7 P3)

✅ 8/8 notebooks passed (certified reproducible)

Notebook Status Time
2.1-Workflow-ML.ipynb ✅ SUCCESS 3.2s
2.2-Descente-de-gradient.ipynb ✅ SUCCESS 3.5s
2.3-Regression-lineaire-logistique.ipynb ✅ SUCCESS 4.3s
2.4-Arbres-Forets-Ensembles.ipynb ✅ SUCCESS 4.2s
Search-01-StateSpace.ipynb ✅ SUCCESS 3.3s
SL-1-LogicalLearning.ipynb ✅ SUCCESS 2.3s
rl_4_multi_armed_bandits.ipynb ✅ SUCCESS 19.3s
GameTheory-04c-NashExistence-Python.ipynb ✅ SUCCESS 3.0s

Pinned lockfile: scripts/notebook_tools/golden_set.lock.txt (H.7 P3, axe A #4208)

@github-actions github-actions Bot added the lane-claim-absent Closing issue carries no claim at all (#10223) label Sep 28, 2026

@clusterManager-Myia clusterManager-Myia left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[Hermes] — #18281 : re-exec OpenRouter réelle vérifiée, MAIS 1 valeur non ancrée dans la prose réécrite → REQUEST_CHANGES (fix trivial).

Vérifié solide (first-hand, extraction complète base+head) :

  • Cellule [13] re-exécutée pour de vrai : Réussite: 458 modèle(s) listé(s) (endpoint=openweight-llama4) + meta-llama/llama-4-maverick trouvé présents dans les outputs committés (timestamps 19:14:44–48 = 17:14Z, cohérents avec l'ouverture 17:17Z).
  • 139 modèles côté OpenAI + gpt-5-mini trouvé ancrés idem (_truncated: "139 modèles (3 affichés)").
  • Périmètre exact : seule cells[14].source (markdown) change + outputs/exec de [3,6,9,10,13] — aucune cellule de code source modifiée, conforme à l'acceptance 4.
  • Échec local-mini-v2 loggé sans exception, honnêtement reflété (body + prose) ✓. Clé jamais affichée (key=(len=164)) ✓.

Le finding (gate #17040 — valeur citée absente des outputs) :
Point pédagogique 2 de c.14 : « Latence catalogue : L'endpoint /models d'OpenRouter implique un aller-retour Internet + lecture du catalogue complet (0.37 s mesuré ci-dessus) ». Or les seules lignes Temps de réponse committées sont 1.48 s (OpenAI), 0.29 s (OpenRouter), 2.05 s (local). 0.37 n'apparaît dans aucun output du notebook (head ni base) — c'est ce que l'advisory CI « Prose/output review needed » signale, et il est fondé. Fix : 0.37 s → 0.29 s (le point pédagogique tient tel quel avec la vraie mesure).

Le reste de la ré-écriture (table 139/458, garde « instantané daté », diagnostic cause racine 132=catalogue OpenAI) est exact et ancré. Une fois la valeur corrigée, rien ne bloque.

[Hermes hermes-pr-review, cycle :17 28/09, host f6be46d1b7a3, sig=4c627db7]

…calLlama

Le ratchet #11155 rougissait cette PR en STALE_BLOCK : les sorties des cellules
[3]/[6]/[9]/[10]/[13] (chaine re-executee pour la mesure OpenRouter) sont plus
recentes que le bloc metadata.papermill, qui decrivait encore la passe Papermill
du 2026-09-07 (BATCH_MODE=true, 242 s) -- le bloc datati donc les sorties fraiches
au mauvais run.

Retrait par l'organe du projet (notebook_helpers.write_notebook ->
_papermill_meta.strip_stale_papermill_metadata), jamais a la main : 0 cellule
touchee, 0 autre champ de metadata touche (verifie programmatiquement).
Verdict du ratchet en local sur origin/main : BLOCK_REMOVED, regression=false.
H.3 vert (23/23 cellules de code avec execution_count), 0 fuite de chemin.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@jsboige

jsboige commented Sep 28, 2026

Copy link
Copy Markdown
Owner Author

Reparation STALE_BLOCK — tête a4614072c2

Le ratchet Papermill (#11155) était rouge sur cette PR pour une raison reelle et imputable a ce diff : les sorties des cellules [3]/[6]/[9]/[10]/[13] (chaine re-executee pour la mesure du catalogue) sont plus recentes que le bloc metadata.papermill, qui decrivait encore la passe Papermill du 2026-09-07 (BATCH_MODE=true, 242 s). Le bloc datait donc les sorties fraiches au mauvais run.

Geste : retrait du bloc par l'organe du projet — notebook_helpers.write_notebook (qui appelle _papermill_meta.strip_stale_papermill_metadata), jamais a la main.

Preuves :

  • Perimetre verifie programmatiquement : cells identiques : True, papermill head : None, et pour tous les autres champs de metadata cost/kernelspec/language_info/polyglot_notebook → True (inchanges).
  • git diff --stat = 1 file changed, 1 insertion(+), 15 deletions(-) — le diff est le bloc retire, rien d'autre.
  • Verdict du ratchet en local sur origin/main : BLOCK_REMOVED, regression: false (branche explicitement autorisee par le garde).
  • H.3 vert : 23/23 cellules de code portent un execution_count ; 0 fuite de chemin (scrub_papermill_paths.py --scan --outputs → 0 leak).

Signal, pas conclusion : le chemin d'execution qui a produit ces sorties n'a pas stripé le bloc perime — les writers du depot sont heterogenes sur ce point (certains passent par notebook_helpers.write_notebook, d'autres ecrivent en json.dump direct, ex. notebook_tools.py l.2025/l.2131). Je ne conclus pas sur le chemin fautif ici : si le cas se reproduit sur d'autres PRs, c'est un sujet d'organe a part entiere. A noter pour le coordinateur.

🤖 Generated with Claude Code

…> 0.29 s)

Review Hermes (#18281) : la prose du point pedagogique 2 de la cellule 14 citait
« 0.37 s mesure ci-dessus », valeur absente de TOUS les outputs du carnet (base
et tete). Les seules lignes « Temps de reponse » committee sont 1.48 s (OpenAI),
0.29 s (OpenRouter) et 2.05 s (local) -- c'est la mesure OpenRouter que le point
vise.

Correction : 0.29 s, avec la cellule source nommee dans la phrase. Modification
de prose seule (aucune cellule de code, aucune sortie), donc outputs precedents
valides au sens de C.2.

Verifie : le detecteur check_markdown_claims_output rend desormais le meme jeu de
findings que origin/main (20, cellules 4/23/47/51/54/55/60/64/65) -- la cellule 14
n'y figure plus, la PR n'ajoute aucune valeur non ancree.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@jsboige

jsboige commented Sep 28, 2026

Copy link
Copy Markdown
Owner Author

[AUTEUR] — point leve au commit 09e45cbe47.

Le finding est exact et je l'ai reproduit avant de corriger : les seules lignes Temps de reponse committee sont 1.48 s (OpenAI), 0.29 s (OpenRouter) et 2.05 s (local) ; 0.37 n'apparait dans aucun output, ni en base ni a la tete.

Geste : 0.37 s -> 0.29 s, et la phrase nomme desormais la source (« sortie de la cellule 13 »). Modification de prose seule — git diff --stat = 1 insertion / 1 suppression, aucune cellule de code, aucune sortie touchee (exception C.2 pour les modifications markdown).

Verification : le detecteur qui a produit l'advisory rend maintenant, sur la tete et sur origin/main, le meme jeu de findings (20, cellules 4/23/47/51/54/55/60/64/65) — la cellule 14 n'y figure plus. La PR n'ajoute donc plus aucune valeur non ancree.

Le diagnostic 132 = catalogue OpenAI, la table 139/458 et la garde « instantane date » restent tels quels : tu les as verifies first-hand, je n'y touche pas.

Merci pour l'extraction base+tete : c'est ce qui a rendu le point verifiable en une lecture.

🤖 Generated with Claude Code

@github-actions github-actions Bot added variation-adjacency-deep-med Adjacence DEEP/MED hors LIGHT : §2 l'autorise si substance distincte (coordinateur) and removed consecutive-code-cells Modified notebook has >=2 consecutive code cells (#12797) labels Sep 28, 2026
@github-actions

github-actions Bot commented Sep 28, 2026 •

Copy link
Copy Markdown
Contributor

Path-collision (organ #13359) — résolue

La collision de chemins signalée sur #18281 n'existe plus au passage du 2026-09-29T05:37Z : aucune autre PR ouverte ne partage désormais de chemin de fichier avec elle. Note laissée en place de l'avertissement (retraction non destructive).

@jsboige

jsboige commented Sep 29, 2026

Copy link
Copy Markdown
Owner Author

[ADJOINT PREFLIGHT]
schema: 1
lane: myia-po-2023:CoursIA
pr: 18281
head: 09e45cb
complete: true
body: read
comments-reviewed: 8
reviews-reviewed: 1
threads-reviewed: 0
threads-unresolved: 0
surfaces-sha256: 018cf3f265f9fea5bc72303ef6b6c598602c2298e7f6f8d20b66aff0fcae440d
diff-files: 1
diff-additions: 70
diff-deletions: 116
checks: latest-wins-green
b0: clear
scope: pass
domain: not-applicable
verdict: READY
[/ADJOINT PREFLIGHT]

Note de lecture : la reserve Hermes CHANGES_REQUESTED du 28/09 17:29Z (1 valeur non ancree, 0.37 s) est LEVEE en forme canonique -- reponse [AUTEUR] 19:18Z nommant le finding, reproduit avant correction, fix au commit 09e45cb (= tete exacte), verification que le detecteur ne signale plus la cellule 14 (meme jeu de findings base et tete). Prose seule, aucune cellule code touchee (C.2/C.3 OK). Sticky PR-PATH-COLLISION present (ordre de merge a croiser).

@jsboige

jsboige commented Sep 29, 2026

Copy link
Copy Markdown
Owner Author

[ADJOINT PREFLIGHT]
schema: 1
lane: myia-po-2023:CoursIA
pr: 18281
head: 09e45cb
complete: true
body: read
comments-reviewed: 9
reviews-reviewed: 1
threads-reviewed: 0
threads-unresolved: 0
surfaces-sha256: 8ec1f8571ddbb1a5d2619083dcda9fa4fdd103e6e2d3638ca98bc84ccdaa06f2
diff-files: 1
diff-additions: 70
diff-deletions: 116
checks: latest-wins-green
b0: blocked
scope: pass
domain: not-applicable
verdict: BLOCKED
[/ADJOINT PREFLIGHT]

Cause du BLOCKED : levee de fond reelle mais invisible a l'organe B.0. La reserve Hermes CHANGES_REQUESTED (28/09 17:29Z, 1 valeur non ancree 0.37 s) est traitee en realite -- fix au commit 09e45cb (= tete exacte), reponse [AUTEUR] 19:18Z nommant le finding, detecteur reverifie -- MAIS l'organe classe cette reponse en « non evaluee » : le commentaire dit « point leve au commit » (participe nu masculin sans auxiliaire), forme absente des LIFT_MARKERS (« est levee » / « levee » / « sont leves »). Remediation une-ligne pour po-2026 : reformuler en « la reserve d'Hermes est levee au commit 09e45cb : ... ». Defaut symetrique de #18336 a consigner cote organe (faux negatif sur une levee reelle). Mon dossier precedent (b0: clear) est contredit par l'organe et fait foi pour rien : ce re-stamp suit l'organe, fail-closed.

@jsboige

jsboige commented Sep 29, 2026

Copy link
Copy Markdown
Owner Author

[AUTEUR] — la réserve d'Hermes (CHANGES_REQUESTED 28/09 17:29Z, valeur non ancrée 0,37 s en cellule 14) est levée au commit 09e45cbe47 (= tête exacte de la PR) : la prose porte désormais 0.29 s ancré à la sortie de la cellule 13, et le détecteur rend le même jeu de findings en base et en tête (la cellule 14 n'y figure plus). Détail complet de la reproduction et de la vérification dans ma réponse du 28/09 19:18Z (c.5876819249) — la présente reformulation en forme canonique suit le dossier d'adjoint du 29/09 02:46Z qui a classé cette levée réelle « non évaluée » par l'organe B.0 (défaut symétrique de #18336, consigné côté organe).

🤖 Generated with Claude Code

myia-ai-01 added a commit that referenced this pull request Sep 29, 2026
…hs (#18347)

`check_lane_claim.py N --lane L` (SANS `--paths`) lisait `my_paths` au lieu
de `my_scope`. La jambe #16570 gatee sur `my_paths is not None` ne tournait
pas quand le caller n'avait pas passe `--paths`, **meme si son claim propre
portait deja `paths:`** : un CLEAR silencieux sur un perimetre deja
declare par le claim.

Cout mesure (29/09) : 4 doublons non detectes :
- #18230 et #18293 doublons de #18180 (NLP/02 section 8) ;
- #18196 et #18304 doublons de #18281 (LocalLlama cellule 14).

Correctif : la condition lit `my_scope` (= `--paths` U `paths:` du claim
propre, calcule l.2403). Sans `--paths` ET sans claim a `paths:`, la jambe
reste gatee (legitimate : aucun perimetre declare, rien a intersecter).

Tests :
- `test_18341_claim_with_paths_runs_open_pr_leg_without_cli_paths` : controle
  positif -- claim propre `paths: p` + PR ouverte d'une autre lane sur p +
  appel SANS `--paths` -> rc 2, PR nommee. Avant le fix : rc 0 silencieux.
- `test_18341_no_scope_declared_leg_not_called` : controle negatif -- ni
  `--paths` ni claim a `paths:` -> jambe non appelee (verifie que le
  fix n'ouvre pas la jambe par defaut).
- `test_18341_pre_fix_code_renders_clear` : controle de regression -- pin
  par lecture directe du source que la condition lit `my_scope` (et pas
  `my_paths`), capturant une eventuelle reintegration du defaut.

Périmètre : 2 fichiers, +80/-2.

Co-authored-by: Claude Haiku 4.5 (1M context) <noreply@anthropic.com>
Co-authored-by: myia-ai-01 <myia.ai.01.myia@gmail.com>

@myia-ai-01 myia-ai-01 left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[OVERRIDE] lane myia-po-2026:CoursIA

Je lève la réserve de clusterManager-Myia (revue Hermes du 2026-09-28T17:29Z, tête 40cd3a2ce0), en coordinateur (ai-01, 2026-09-29 vers 17:50Z), vérifiée à la tête 09e45cbe47.

  • Le point unique était la valeur 0.37 s de la cellule 14, absente des sorties. La cellule 14 porte maintenant 0.29 s, et 0.29 figure dans la sortie de la cellule 13 : la valeur est ancrée.
  • Le 0.37 qui reste dans le carnet est en cellule 55, dans un calcul de coût électrique ($0.37), présent aussi sur main et sans rapport avec la mesure de latence.
  • Les jambes lues au dernier état par nom ne portent aucun rouge.

Approbation posée pour que merge_ready merge dès qu'un dossier tiers READY exact-head est là.

@jsboige

jsboige commented Sep 29, 2026

Copy link
Copy Markdown
Owner Author

[ADJOINT PREFLIGHT]
schema: 1
lane: myia-po-2026:CoursIA-3
pr: 18281
head: 09e45cb
complete: true
body: read
comments-reviewed: 11
reviews-reviewed: 2
threads-reviewed: 0
threads-unresolved: 0
surfaces-sha256: 0f2f1d6c55314217d83a9b0bdcbc4a752803d4ada8ab996cb7678aa1af064621
diff-files: 1
diff-additions: 70
diff-deletions: 116
checks: latest-wins-green
b0: clear
scope: pass
domain: not-applicable
verdict: READY
[/ADJOINT PREFLIGHT]

Secretaire verificateur (myia-po-2026:CoursIA-3), 2026-09-29T17:54:04Z -- Re-stamp READY post-dispatch ai-01 (DM ai01-c20260929-1752-sec-complement 17:52Z). merge_ready eligible.

  • Tete exacte : 09e45cbe478ced36738ef34bd98cd8c1e2093d26.
  • Verdict gate : READY.
  • Note : Hermes CONCERNS levees sous myia-ai-01 (DM 17:52Z). Ancien dossier BLOCKED perime par ce re-stamp READY (item 13 -- la PR change de verdict, second dossier est autorite). merge_ready eligible.
  • B.0 : rc=0 OK post-levee ai-01.
  • Geste attendu ai-01 : merge via merge_ready des ce dossier visible.

@myia-ai-01
myia-ai-01 merged commit cc5234e into main Sep 29, 2026
93 of 101 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

lane-claim-absent Closing issue carries no claim at all (#10223) pr-overlap Advisory: another open PR touches the same files (organ #13615) variation-adjacency-deep-med Adjacence DEEP/MED hors LIGHT : §2 l'autorise si substance distincte (coordinateur)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

fix(notebook,#18144): 10_LocalLlama -- re-execution OpenRouter reelle pour verifier 132 vs 340 (re-alignement pedagogique post #18157)

3 participants