2026-06-21 Revisión
Se volvió a preguntar el flujo de conversión JSONL de la documentación oficial de Godot
Pegué el esquema de 2026-06-21-initial-rag-classifier-architecture.md en Qwen y pregunté por la dirección del código Python para convertir un documento Markdown a JSONL.
El núcleo de la primera pregunta era un script de conversión simple.
- Necesito código Python que convierta Markdown a JSONL al recibir Markdown como entrada
- Sería útil que también se proporcione el comando de ejecución
- Quiero generar el contenido JSONL llamando a la API de Qwen
- Al guardarse como JSONL, el esquema no debe romperse, por lo que se requiere lógica de validación
- Quiero verificar el formato JSONL mediante expresiones regulares o validación de esquema
- También sería bueno que el modelo determine a qué tabla debe mapearse la llamada a la API
- Si es necesario, se debe generar el esquema completo de
docs_chunks,api_mapping,label_prototypes
El pensamiento se expandió de un script CLI a una herramienta basada en web
Luego consideré que un simple convertidor CLI no permitiría ver el flujo claramente. Así que también pensé en una arquitectura que se invoque desde la web.
- Sería útil poder ingresar la clave API en la pantalla web
- Sería útil soportar la carga de archivos Markdown o la carga de carpetas
- Sería útil poder ver el diff o los cambios antes y después de la conversión directamente en la web
- En lugar de solo crear el archivo de resultado, el proceso de conversión y los resultados deben poder ser revisados por una persona
Al formular esta pregunta, sentí que el convertidor JSONL no debería ser solo un script por lotes, sino una herramienta de procesamiento de datos que sea revisada y aprobada por personas.
Se confirmó nuevamente el problema de que un archivo puede ir a varias tablas
La pregunta adicional más importante fue que un archivo Markdown no tiene que mapearse a una sola tabla.
Por ejemplo, un documento de migración puede generar simultáneamente tres tipos de JSONL.
- Los fragmentos de explicación oficial son
docs_chunks.jsonl - Las reglas de cambio de API son
api_mapping.jsonl - Los ejemplos de conversión/clasificación son
label_prototypes.jsonl
Por lo tanto, el convertidor no debe ser una estructura que reciba un archivo y produzca un solo JSONL, sino que primero llame a Qwen para determinar qué registros de tabla son necesarios y, si se obtienen respuestas múltiples, debe poder generar dos o más registros JSONL a partir de un mismo archivo.
Nueva dirección de diseño establecida hoy
- La conversión de Markdown a JSONL se divide en las etapas
clasificación -> generación -> validación -> guardado. - Qwen puede asumir el papel de leer el contenido y determinar la tabla objetivo necesaria.
- Sin embargo, la respuesta de Qwen no se confía ciegamente; un validador de esquema local decide la decisión final de guardado.
- Las expresiones regulares se usan solo para una validación mínima de formato, mientras que la validación real de campos es más adecuada con JSON Schema o Pydantic.
- Se parte del supuesto básico de que un archivo Markdown puede producir varios resultados JSONL.
- La UI web no es solo una función de conveniencia, sino que puede convertirse en una capa de revisión donde una persona verifica y aprueba los registros generados automáticamente.
Notas de tareas siguientes
- Redactar borradores de JSON Schema para
docs_chunks,api_mappingylabel_prototypes. - Diseñar el prompt que haga que Qwen, al recibir un archivo Markdown, identifique los candidatos a tablas objetivo.
- Crear reglas para separar y guardar por archivo cuando la respuesta de Qwen incluya varios registros de tabla.
- Primero crear un script CLI que valide JSONL línea por línea.
- Luego ampliar la UI web para permitir carga, conversión, diff, resultados de validación y flujo de aprobación/rechazo.
Preguntas pendientes
- Si delegamos a Qwen la determinación del mapeo de tabla, ¿en qué casos una persona debe aprobar obligatoriamente?
- ¿Los candidatos de
api_mappingse insertan directamente en la base de datos o solo se guardan en estadocandidate? - En la UI web, ¿el diff se muestra respecto al Markdown original vs JSONL, o respecto a la versión anterior de JSONL?
- Cuando se carga una carpeta, ¿cómo se reintentan los archivos que fallaron y los que tuvieron éxito parcial?