idea_world_labDEV JOURNAL
domingo, 21 de junio de 2026

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

  1. Redactar borradores de JSON Schema para docs_chunks, api_mapping y label_prototypes.
  2. Diseñar el prompt que haga que Qwen, al recibir un archivo Markdown, identifique los candidatos a tablas objetivo.
  3. Crear reglas para separar y guardar por archivo cuando la respuesta de Qwen incluya varios registros de tabla.
  4. Primero crear un script CLI que valide JSONL línea por línea.
  5. 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_mapping se insertan directamente en la base de datos o solo se guardan en estado candidate?
  • 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?