Hey comunidad de n8n,
Los pipelines de extracción de documentos manejan facturas y CVs de maravilla. Pero durante una noche de juegos, le pasamos a nuestro AI algo que se veía simple pero lo rompió completamente: una tarjeta de puntuación de Kniffel (Yahtzee) escrita a mano.
La trampa de la cuadrícula
El objetivo: Tomar una foto, encontrar jugadores con un asterisco escrito a mano (*) encima de su nombre, extraer sus puntuaciones, calcular el bono de 35 puntos (si top $\ge$ 63), sumar todo y enviar a Sheets y Telegram.
Mira la foto adjunta:
Es obvio para los humanos. Pero el LLM alucinó nombres (“Ivan” se convirtió en “ban”), fusionó columnas y arruinó las matemáticas.
Aquí te explicamos por qué los datos espaciales rompen la IA y la arquitectura de prompts que usamos para arreglarlo:
Romper el sesgo “Izquierda-Derecha”
Los LLMs leen como un libro (de izquierda a derecha, fila por fila). Una tarjeta de puntuación exige lo opuesto. Para evitar el “sangrado de filas” entre columnas, forzamos una salida de Array de Objetos ([{player_name, sum_top, sum_bottom}]). Esto obliga a la IA a terminar de leer una columna vertical antes de pasar a la siguiente.
Matemáticas determinísticas, cero juicio del LLM
Ya sabemos que el Extractor que estamos usando es increíblemente confiable para clasificar documentos y extraer datos estructurados, así que decidimos probar sus límites y ver si podía manejar cálculos también. Gran error. Los LLMs son motores de predicción de texto, no calculadoras. La solución: Le indicamos que solo extrajera números sin procesar y usamos un nodo de Código JavaScript puro aguas abajo para manejar las matemáticas y el bono condicional.
Los estados vacíos explícitos detienen las alucinaciones
Los jugadores escribieron guiones (-) en las casillas vacías. Como el LLM no podía encajar un guión en un esquema de Número, entró en pánico y generó -1, rompiendo nuestro JavaScript. Agregar una restricción estricta—“CRÍTICO: Si una celda es un guión o está vacía, DEBES generar 0”—arregló el pipeline al instante.
Anclando la vista con etiquetas
Para evitar que la IA se desviara entre columnas, le dimos coordenadas visuales. Le indicamos que mirara las etiquetas impresas en el extremo izquierdo (por ejemplo, “Dreierpasch”), trazara una línea horizontal invisible hasta la columna marcada y extrajera solo esa celda.
Una advertencia honesta
Delegar las matemáticas a JS garantiza una lógica perfecta, pero el reconocimiento de escritura manuscrita aún depende de la calidad de la foto. Si necesitas datos impecables de escritura desordenada, la validación humana en el bucle es aún el límite.
Cómo ejecutarlo
Utilicé el Extractor de easybits porque maneja el cumplimiento de esquema JSON de forma nativa sin luchar con prompts de nodos HTTP. Tanto cloud como auto-hospedado caben en el nivel gratuito.
-
n8n Cloud: Busca
easybitsen el panel de nodos. -
Auto-hospedado: Instala
@easybits/n8n-nodes-extractordesde Nodos de Comunidad.
Comentarios bienvenidos
He adjuntado la imagen sin procesar. Tengo mucha curiosidad: ¿qué sucede cuando ejecutas esta imagen exacta a través de tu configuración actual de OCR o LLM? ¿Has encontrado una forma más limpia de extraer columnas verticales de cuadrículas horizontales densas?
Saludos,
Felix
