Salut la communauté n8n,
Les pipelines d’extraction de documents gèrent magnifiquement les factures et les CV. Mais lors d’une soirée jeux, nous avons donné à notre IA quelque chose qui semblait simple mais qui l’a complètement bloquée : une feuille de pointage Kniffel (Yahtzee) manuscrite.
Le piège de la grille
L’objectif : Prendre une photo, trouver les joueurs avec un astérisque manuscrit (*) au-dessus de leur nom, extraire leurs scores, calculer le bonus de 35 points (si haut $\ge$ 63), tout totaliser, et envoyer vers Sheets et Telegram.
Regardez la photo jointe :
C’est évident pour les humains. Mais l’IA a hallucé des noms (« Ivan » est devenu « ban »), fusionné les colonnes et massacré les calculs.
Voici pourquoi les données spatiales cassent l’IA, et l’architecture d’invite que nous avons utilisée pour la corriger :
Briser le biais « De gauche à droite »
Les IA lisent comme un livre (de gauche à droite, ligne par ligne). Une feuille de pointage exige l’inverse. Pour arrêter le « débordement de ligne » entre les colonnes, nous avons forcé une sortie Array of Objects ([{player_name, sum_top, sum_bottom}]). Cela force l’IA à terminer la lecture d’une colonne verticale avant de passer à la suivante.
Mathématiques déterministes, zéro jugement de l’IA
Nous savons déjà que l’Extracteur que nous utilisons est incroyablement fiable pour classer les documents et extraire des données structurées, nous avons donc décidé de repousser ses limites et de tester s’il pouvait aussi gérer les calculs. Grosse erreur. Les IA sont des moteurs de prédiction de texte, pas des calculatrices. La solution : Nous lui avons ordonné d’extraire uniquement les nombres bruts, et avons utilisé un nœud Code JavaScript pur en aval pour gérer les mathématiques et le bonus conditionnel.
Les états vides explicites arrêtent les hallucinations
Les joueurs ont écrit des tirets (-) pour les cases vides. Parce que l’IA ne pouvait pas insérer un tiret dans un schéma Nombre, elle a paniqué et a généré -1, cassant notre JavaScript. Ajouter une contrainte stricte—« CRITIQUE : Si une cellule est un tiret ou vide, vous DEVEZ sortir 0 », a instantanément réparé le pipeline.
Ancrer les yeux avec des étiquettes
Pour empêcher l’IA de dériver entre les colonnes, nous lui avons donné des coordonnées visuelles. Nous lui avons ordonné de regarder les étiquettes imprimées à l’extrême gauche (par exemple, « Dreierpasch »), de tracer une ligne horizontale invisible vers la colonne étoilée, et d’extraire uniquement cette cellule.
Une honnête limite
Déléguer les mathématiques à JS garantit une logique parfaite, mais la reconnaissance d’écriture manuscrite dépend toujours de la qualité de la photo. Si vous avez besoin de données impeccables à partir d’une écriture désordonnée, la validation en boucle humaine reste le plafond.
Comment l’exécuter
J’ai utilisé l’Extracteur easybits parce qu’il applique nativement l’application du schéma JSON sans se battre avec les invites du nœud HTTP. Cloud et auto-hébergé correspondent au niveau gratuit.
-
n8n Cloud : Recherchez
easybitsdans le panneau des nœuds. -
Auto-hébergé : Installez
@easybits/n8n-nodes-extractordepuis les nœuds communautaires.
Les retours sont bienvenus
J’ai joint l’image brute. Je suis très curieux : qu’arrive-t-il lorsque vous exécutez cette image exacte à travers votre configuration OCR ou IA actuelle ? Avez-vous trouvé un moyen plus propre d’extraire les colonnes verticales des grilles horizontales denses ?
Cordialement,
Felix
