Esquema JSONL de prueba para Qwen y su uso
Fecha de creación: 28 de junio de 2026
Propósito
Crear fragmentos de código de Godot con Qwen y, para esos fragmentos, adjuntar JSONL de respuestas correctas y JSONL de respuestas incorrectas para validar con “sí”/“no”. Este documento resume el formato JSONL de referencia y el propósito de cada JSONL.
Este no es un documento que proporcione datos de ejemplo. Es una referencia de esquema para verificar qué JSONL cumple qué función y qué campos se utilizan para la evaluación directa.
Criterios comunes
JSONL escribe un objeto JSON por línea.
{...}
{...}
{...}En la prueba, no se coloca un contenedor que envuelva el nombre de la tabla, sino que los campos que corresponden a las columnas de la tabla objetivo se colocan en el nivel superior.
Bueno:
{"chunk_id":"...","content":"...","code_blocks":[...]}
Evitar:
{"table":"docs_chunks","payload":{"chunk_id":"..."}}Los campos que se generan automáticamente en la base de datos o que se usan para el índice de búsqueda no necesitan ser completados directamente en el JSONL de prueba.
| Campo de la base de datos | Según JSONL de prueba |
|---|---|
id |
excluir |
embedding |
excluir o null |
search_tsv |
excluir |
created_at |
excluir |
Lo importante en la verificación de evidencia directa de Qwen es “qué campo dentro del JSONL coincide directamente con la cadena/API/patrón real del SOURCE_CODE”.
docs_chunks
Uso
docs_chunks es un JSONL que almacena la explicación de la documentación oficial, tutoriales y el cuerpo de la referencia de clases en unidades de fragmentos.
Se utiliza para solicitar explicaciones de código, verificar el uso de API comunes, y confirmar explicaciones de la sintaxis común de Godot 3/4. Es una base para determinar “qué tan directamente relacionado está este código con alguna explicación de la documentación oficial”, más que para las reglas de migración en sí.
Formato 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"
}Directamente basado en evidencia del campo
| Campo | Criterio de evidencia directa |
|---|---|
content |
Debe describir la API, nombre de función, nombre de nodo o patrón de código que se encuentran en SOURCE_CODE |
code_blocks |
Debe contener una cadena de código o patrón de llamada idéntico a SOURCE_CODE |
api_symbols |
Debe coincidir directamente con la API/símbolo presente en SOURCE_CODE |
heading |
Evidencia secundaria. Es débil si solo coincide el encabezado y no hay evidencia en el cuerpo/código |
godot_version_tags |
Solo para referencia de versión. No debe usarse solo para decidir Sí |
Rol en las pruebas
| Caso | Expectativa |
|---|---|
SOURCE_CODE usa get_viewport_rect().size y content o code_blocks contienen la misma expresión |
Sí |
Solo se comparte un tema amplio similar a SOURCE_CODE pero no hay cadena real/API |
No |
| Descripción de sintaxis común de Godot 3/4 y la cadena de código coincide exactamente | Sí |
| Solo coinciden las etiquetas de versión y no hay evidencia de código | No |
api_mapping
Propósito
api_mapping es un archivo JSONL que almacena cómo cambian los nombres, nombres de clase, nombres de función y nombres de símbolo de Godot 3 a Godot 4.
Se usa para determinar cambios de nombre simples, renombrados, reemplazos o APIs obsoletas/eliminadas. Los casos en los que cambia todo el modo de usar una función se manejan más en la sección label_prototypes.
Formato 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>"
}Directamente basado en evidencia del campo
| Campo | Criterio de evidencia directa |
|---|---|
source_api |
Debe aparecer realmente en el SOURCE_CODE |
target_api |
Se usa para validar el código transformado o la explicación de la migración |
match_terms |
Debe coincidir exactamente con la cadena/API real dentro del SOURCE_CODE |
notes |
Explicación complementaria. Se considera junto con source_api/match_terms más que como evidencia aislada |
negative_patterns |
Si el SOURCE_CODE coincide con este patrón, constituye evidencia de no |
Rol en las pruebas
| Caso | Expectativa |
|---|---|
En el SOURCE_CODE hay KinematicBody2D y el source_api del JSONL también es KinematicBody2D |
Sí |
En el SOURCE_CODE hay yield( y el match_terms del JSONL contiene yield( |
Sí |
El JSONL indica Camera -> Camera3D pero el SOURCE_CODE es KinematicBody2D |
No |
| Solo coinciden palabras amplias como Godot 3/4, migración | No |
label_prototypes
Uso
label_prototypes es un JSONL que almacena ejemplos donde no solo cambia el nombre, sino que también se modifica por completo la forma de usar la función, la composición de argumentos y el patrón de llamada.
Si api_mapping responde a “qué nombre cambió a cuál”, label_prototypes se acerca a “qué patrón de código debe emplearse”.
Formato 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 puede tener los siguientes subcampos.
{
"required_when_seen_in_code": "array<string>",
"before_code": "text",
"after_code": "text",
"reject_when_seen_in_code": "array<string>"
}Campos vistos como evidencia directa
| Campo | Criterio de evidencia directa |
|---|---|
input_pattern |
Debe coincidir directamente con el patrón de llamada de SOURCE_CODE |
expected_finding |
Describe qué problema/patrón debe buscarse |
recommended_action |
Dirección de transformación o explicación |
validator_rules.required_when_seen_in_code |
Debe estar realmente en SOURCE_CODE para que sea evidencia de sí |
validator_rules.before_code |
Si el patrón de código anterior es directamente el mismo que en SOURCE_CODE, es una fuerte evidencia de sí |
validator_rules.reject_when_seen_in_code |
Si SOURCE_CODE tiene este patrón, el prototipo corresponde a no |
Rol en las pruebas
| Caso | Expectativa |
|---|---|
En SOURCE_CODE hay yield(get_tree().create_timer(...), "timeout") y before_code también tiene el mismo patrón |
sí |
En SOURCE_CODE hay move_and_slide(velocity) y el prototipo describe el cambio de esa forma de llamada |
sí |
SOURCE_CODE es yield pero el prototipo es una conversión a Color8 |
no |
| Solo comparte la misma etiqueta que SOURCE_CODE pero no hay patrón real | no |
Límite de los tres JSONL
| JSONL | Pregunta clave | Lo que debe coincidir principalmente |
|---|---|---|
docs_chunks |
Si este código está directamente relacionado con alguna explicación/documentación oficial/tutorial | content, code_blocks, api_symbols |
api_mapping |
Si los API/símbolos en este código cambiaron de nombre o destino de Godot 3 a 4 | source_api, target_api, match_terms |
label_prototypes |
Si el modo de uso/argumentos/patrón de llamada de este código corresponde a un ejemplo donde todo cambia | input_pattern, validator_rules, before_code |
Manejo de sintaxis común
| Situación | JSONL a usar | Criterio de juicio |
|---|---|---|
Código de uso común como _ready(), _process(delta), print() |
1 JSONL de ese código/función + 1 JSONL de una función totalmente diferente | Si hay evidencia directa basada en el mismo fragmento de código, sí; si es una función totalmente diferente, no |
| Se adjunta un JSONL de migración no relacionado con el código de sintaxis común | api_mapping o label_prototypes es incorrecto |
Si no hay API/patrón real, no |
| Aparece un API específico de Godot 3 | JSONL exclusivo de Godot 3 + JSONL exclusivo de Godot 4 | El JSONL que coincida directamente con la cadena/patrón de Godot 3 en SOURCE_CODE es sí |
| Aparece un API específico de Godot 4 | JSONL exclusivo de Godot 4 + JSONL exclusivo de Godot 3 | El JSONL que coincida directamente con la cadena/patrón de Godot 4 en SOURCE_CODE es sí |