Repository navigation
feat(genai,#18574): muscle les trois exemples guides de 03_Structured_Outputs - #19627
Conversation
…_Outputs Les trois exemples guidés crédités (film, extracteur d'événements, analyseur de produits) affichaient leur résultat sans jamais le vérifier. Chacun reçoit une cellule de vérification placée APRÈS son code, et une cellule « Interprétation » qui lit la sortie réelle. Le code et le crédit de l'étudiante sont conservés à l'identique. - film : conformité au schéma vérifiée sur la réponse réelle (CONFORME) **et** sur un objet fabriqué (3 écarts : champ requis absent, type, énumération) — le contrôle discrimine au lieu d'approuver. - événements : les trois garde-fous sont vus en train de REJETER (date incohérente, titre vide, priorité hors énumération), avec un témoin valide qui passe. Le `loc` vide du rejet de date est la signature du @model_validator, pas un défaut. - produits : fidélité confrontée au texte source (prix, note, avis), et provenance des libellés mise au jour — `Marque` et `Stockage` sont INFÉRÉS, `puce` est renommé en `Processeur`. Ré-exécution : papermill, 19/19 cellules, 0 erreur, 96 s, sorties committées. Aucune source de code préexistante modifiée (invariant vérifié contre origin/main). See #18574 Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
|
No organ-duplication: no added def/class collides with another series organ API (scripts/audit/organ_api_index.yaml). Detector: |
|
Scope = notebooks CHANGED in this PR, not the whole corpus. Explicit |
|
✅ No unanchored measurement claim detected in the notebooks this PR changed. Scope = notebooks CHANGED in this PR, not the whole corpus. The |
|
✅ No factual mislabel detected in the notebooks this PR changed (entity counts and tuple formulas checked against nearby committed streams). Scope = notebooks CHANGED in this PR, not the whole corpus. The |
Golden-Set Execution (H.7 P3)✅ 9/9 notebooks passed (certified reproducible)
Pinned lockfile: |
Notebook outputs-required (H.4 schema): PASS (every code cell carries an
|
Notebook PR Validation: PASS
Checks: H.1 (no errors), H.3 (execution_count), C.1 (no banned patterns) |
|
[ADJOINT PREFLIGHT] |
Grain: MED/notebook-python — lane myia-po-2024:CoursIA — prev: MED/notebook-python #19625
Objet
See #18574— première des quatre PR issues du verdict de seconde passe (commentaire publié sur l'issue), qui a classé À MUSCLER les exemples guidés de03_Structured_Outputs.ipynb: les trois exemples crédités (film, extracteur d'événements, analyseur de produits,PR #18488, @Daphneej91) affichent leur résultat sans jamais le vérifier.La musculation suit la méthode de l'issue : garder le code de l'élève et son crédit, ajouter ce qui manquait, réécrire la lecture sur la sortie réelle. Aucune ligne de code étudiante n'est retirée ni modifiée.
Ce qui est ajouté
Trois cellules de vérification (une par exemple, placées après son code) et trois cellules « Interprétation » adossées à la sortie réelle.
json_schemamanuel, strict)genreni les sixrequiredCONFORME au schema+3 ecart(s) detecte(s)(champ requis absent, type, énumération) — le contrôle discriminemodel_validator)ACCEPTEsur le témoin,REJETEsur les trois autres (loc[]/['titre']/['priorite'])prix,note_moyenne, avis :OK; libellés absents mot pour mot du texte :['Marque', 'Processeur', 'Stockage']Deux points de fond que la vérification met au jour, et qu'aucune lecture à l'œil ne donnait :
locvide du rejet de date est la signature d'un@model_validator(mode="after")— une erreur de modèle, pas de champ. Les deux autres rejets portent unlocde champ. C'est cette distinction qui permet de router une erreur vers la bonne cible ;Marque: Appleà partir de « portable Apple ») et renommepuceenProcesseur. Un schéma strict garantit la forme, ni la fidélité à la source ni la provenance d'un libellé — le durcir n'y changerait rien.Ré-exécution (C.2 / H.3)
Trois cellules de code ajoutées ⇒ ré-exécution due, faite de bout en bout :
Sorties committées,
metadata.papermilleninput_path/output_pathbasename (convention du carnet, identique à la passe précédente).Aucune source de code préexistante n'est modifiée — invariant vérifié contre
origin/main: les 16 sources de base se retrouvent byte-identiques et dans l'ordre, plus exactement 3 nouvelles. Les trois cellules « Interprétation » sont du markdown (exception C.2) ; lesidde cellule manquants (nbformat 4.5) ont été complétés.Validation — organes passés
check_null_exec(H.3 pre-commit)null+outputs: []check_cell_source_parsescheck_exec_sequenceCLEAN (1..N)check_credited_examplescheck_output_failure_text(bloquant)check_output_collapse(advisory)check_output_flood·check_source_collapsecheck_prose_quantitative_claims --diff(bloquant)check_split_reading_cells·check_interp_positioningcheck_c2_compliance·check_notebook_outputs_requiredcheck_notebook_navlinksrestore_accents_canonical --checkcheck_exec_ratchetCLEAN->CLEAN, 0 régressionHors périmètre, signalé
check_duplicate_sectionssignale« analyse du resultat » x2(cellules 11 et 19). Pré-existant, pas introduit : la version deorigin/mainporte exactement le même doublon (cellules 11 et 17 avant insertion). Retitrer l'une des deux sections est un autre sujet — non touché ici.Suivi
Les trois carnets
À MUSCLERrestants reçoivent chacun sa PR, dans l'ordre annoncé au verdict :Video/01-1(consigne qui contredit sa solution),Image/01-1(comptage nul),Texte/06(le PDF jamais exercé).🤖 Generated with Claude Code