idea_world_labDEV JOURNAL
dimanche 28 juin 2026

Schéma JSONL de test Qwen et son utilisation

Date de rédaction : 28 juin 2026

Objectif

Créer des morceaux de code Godot avec Qwen, puis associer à chaque morceau de code un JSONL de réponse correcte et un JSONL de réponse incorrecte afin de valider « oui »/« non ». Ce document résume le format JSONL de référence ainsi que l’usage de chaque JSONL.

Ce document ne fournit pas de données d’exemple. Il s’agit d’une documentation de schéma destinée à identifier le rôle de chaque JSONL lors des tests et les champs utilisés pour le jugement de preuve directe.

Critères communs

Chaque ligne d’un fichier JSONL contient un seul objet JSON.

{...}
{...}
{...}

Dans les tests, on ne place pas de wrapper entourant le nom de la table, mais on met les champs correspondant aux colonnes de la table cible au niveau supérieur.

Bon:
{"chunk_id":"...","content":"...","code_blocks":[...]}

À éviter:
{"table":"docs_chunks","payload":{"chunk_id":"..."}}

Les champs générés automatiquement par la base de données ou utilisés dans l'index de recherche n'ont pas besoin d'être remplis directement dans le JSONL de test.

Champ DB opérationnel Selon le JSONL de test
id exclu
embedding exclu ou null
search_tsv exclu
created_at exclu

Dans la validation directe des preuves Qwen, l'important est de savoir « quel champ du JSONL correspond directement à la chaîne réelle / API / motif du CODE_SOURCE ».

docs_chunks

Utilisation

docs_chunks est un JSONL qui stocke les explications de la documentation officielle, les tutoriels et le corps des références de classe par morceaux (chunks).

Il est utilisé pour les demandes d'explication de code, la vérification de l'utilisation des API communes, la vérification des explications de la syntaxe commune de Godot 3/4. Plutôt que les règles de migration elles‑mêmes, il sert de preuve pour vérifier « à quelle explication de la documentation officielle ce code est directement lié ».

Format JSONL

{
  "chunk_id": "text, required",
  "doc_version": "text, required",
  "source_url": "text, required",
  "source_file": "text, required",
  "source_sha256": "text, required",
  "doc_type": "text, required",
  "symbol": "text or null",
  "section_path": "array, required",
  "heading": "text or null",
  "content": "text, required",
  "code_blocks": "array, required",
  "language_tags": "array<string>",
  "godot_version_tags": "array<string>",
  "api_symbols": "array<string>",
  "token_count": "integer or null",
  "metadata": "object"
}

Directement basé sur les preuves de champ

Champ Critère de preuve directe
content Doit décrire les API, noms de fonctions, noms de nœuds, modèles de code présents dans le CODE_SOURCE
code_blocks Doit contenir la même chaîne de code ou le même motif d’appel que le CODE_SOURCE
api_symbols Doit correspondre exactement aux API/symboles présents dans le CODE_SOURCE
heading Preuve secondaire. Faible si seul le titre correspond sans preuve dans le corps ou le code
godot_version_tags À titre de référence de version. Ne doit pas être utilisé seul pour juger « Oui »

Rôle dans les tests

Cas Attendu
Le CODE_SOURCE utilise get_viewport_rect().size et le même libellé apparaît dans content ou code_blocks Oui
Le CODE_SOURCE partage uniquement un sujet large sans chaîne réelle/API Non
Description de la syntaxe commune Godot 3/4 avec la chaîne de code correspondant exactement Oui
Seuls les tags de version correspondent, aucune preuve de code Non

api_mapping

Utilité

api_mapping est un fichier JSONL qui enregistre comment les noms, classes, fonctions et symboles ont changé de Godot 3 à Godot 4.

Il est utilisé pour les changements simples de nom, les renommages, remplacements, ou la détermination d’API dépréciées/supprimées. Les cas où la façon d’utiliser une fonction change complètement sont plutôt traités dans la section label_prototypes.

Format JSONL

{
  "mapping_id": "text, required",
  "source_api": "text, required",
  "target_api": "text or null",
  "change_type": "text, required",
  "godot_from": "text, required",
  "godot_to": "text, required",
  "confidence": "text, required",
  "evidence_chunk_ids": "array<string>",
  "match_terms": "array<string>",
  "notes": "text",
  "negative_patterns": "array<string>"
}

Directement basé sur les preuves du champ

Champ Critère de preuve directe
source_api Doit réellement apparaître dans le CODE_SOURCE
target_api Utilisé pour vérifier le code après transformation ou la description de la migration
match_terms Doit correspondre exactement aux chaînes/API réelles dans le CODE_SOURCE
notes Explication supplémentaire. Consulté avec source_api/match_terms plutôt que comme preuve isolée
negative_patterns Si le CODE_SOURCE correspond à ce modèle, il constitue une preuve de « non »

Rôle dans les tests

Cas Attendu
Le CODE_SOURCE contient KinematicBody2D et le source_api du JSONL est également KinematicBody2D Oui
Le CODE_SOURCE contient yield( et le match_terms du JSONL contient yield( Oui
Le JSONL indique Camera -> Camera3D mais le CODE_SOURCE est KinematicBody2D Non
Seuls des mots généraux comme Godot 3/4, migration se recoupent Non

label_prototypes

Utilisation

label_prototypes est un fichier JSONL qui stocke des exemples où non seulement le nom change, mais aussi la façon d’utiliser la fonction, la composition des arguments et le modèle d’appel sont entièrement modifiés.

Si api_mapping répond à la question « Quel nom a été remplacé par quoi », alors label_prototypes se rapproche de « Comment le code doit‑il être écrit ».

Format JSONL

{
  "prototype_id": "text, required",
  "label": "text, required",
  "task_type": "text, required",
  "input_pattern": "text, required",
  "expected_finding": "text, required",
  "recommended_action": "text, required",
  "evidence_mapping_ids": "array<string>",
  "evidence_chunk_ids": "array<string>",
  "severity": "text",
  "validator_rules": "object"
}

validator_rules peut avoir les sous‑champs suivants.

{
  "required_when_seen_in_code": "array<string>",
  "before_code": "text",
  "after_code": "text",
  "reject_when_seen_in_code": "array<string>"
}

Directement basé sur les preuves de champ

Champ Critère de preuve directe
input_pattern Doit correspondre exactement au modèle d’appel de SOURCE_CODE
expected_finding Description du problème/modèle à rechercher
recommended_action Direction de la transformation ou de l’explication
validator_rules.required_when_seen_in_code Doit réellement être présent dans SOURCE_CODE pour constituer une preuve « oui »
validator_rules.before_code Si le même modèle de code précédent apparaît dans SOURCE_CODE, c’est une preuve forte « oui »
validator_rules.reject_when_seen_in_code Si SOURCE_CODE correspond à ce modèle, le prototype est « non »

Rôle dans les tests

Cas Attendu
SOURCE_CODE contient yield(get_tree().create_timer(...), "timeout") et before_code a le même modèle oui
SOURCE_CODE contient move_and_slide(velocity) et le prototype explique le changement de mode d’appel correspondant oui
SOURCE_CODE est yield mais le prototype concerne la conversion Color8 non
SOURCE_CODE partage uniquement le même label sans le modèle réel non

Frontières des trois JSONL

JSONL Question clé Ce qui doit correspondre principalement
docs_chunks Ce code est-il directement lié à une documentation officielle ou à un tutoriel content, code_blocks, api_symbols
api_mapping Les API/symboles de ce code ont-ils changé de nom ou de cible de Godot 3 à 4 source_api, target_api, match_terms
label_prototypes Le mode d’utilisation, les arguments ou le modèle d’appel de ce code correspondent-ils à un exemple de changement complet input_pattern, validator_rules, before_code

Traitement de la syntaxe commune

Les syntaxes identiques entre Godot 3 et Godot 4 ne sont pas considérées comme des différences de version.

Situation JSONL à utiliser Critère de jugement
Code commun comme _ready(), _process(delta), print() 1 JSONL de code/fonction correspondant + 1 JSONL d’une fonction totalement différente Si une preuve directe existe pour le même fragment de code, oui ; sinon, pour une fonction différente, non
JSONL de migration non lié au code commun api_mapping ou label_prototypes incorrect Si aucune API/modèle réel n’est présent, non
API spécifique à Godot 3 apparaît JSONL dédié à Godot 3 + JSONL dédié à Godot 4 Le JSONL qui correspond directement aux chaînes/modèles Godot 3 du SOURCE_CODE est oui
API spécifique à Godot 4 apparaît JSONL dédié à Godot 4 + JSONL dédié à Godot 3 Le JSONL qui correspond directement aux chaînes/modèles Godot 4 du SOURCE_CODE est oui