Évaluations avec plusieurs lignes

Évaluations Avec Plusieurs Lignes

Décrivez le problème/l’erreur/la question

J’essaie d’exécuter des évaluations sur un workflow, mais le workflow d’évaluation ne s’exécute qu’une seule fois pour la première ligne, même si j’ai plusieurs lignes dans la feuille Google Sheets connectée. J’ai suivi la documentation exactement et je n’arrive toujours pas à le faire boucler et s’exécuter pour plusieurs lignes. Le workflow ci-dessous est un workflow très simple que j’ai configuré pour tester cela.

Quel est le message d’erreur (le cas échéant) ?

Veuillez partager votre workflow

Partagez la sortie renvoyée par le dernier nœud

[
{
“content”: {
“parts”: [
{
“text”: “| output |\n| :— |\n| Hello John |”,
“thoughtSignature”: “EvAECu0EAQw51seqBldzgke32L2p2FSTP+LVobUg/nFzZql1BnD6iGqh9K4Q9rj3ZqYka+EN7xZy1Gyw7MgYL2aHsJfeJ/hlP8yjww+16mYvwlvB/uw5Im5CL6V7dRvGwNTp3BKXushluRrPeUVKZt6E+DN06xHETSKfmN/ICvt+1ae4WCjsmv1BkWhCvrI0tLrT4mVTQ/9wuFpFIX03fwJV2EIghSQcaTCk5ptNyo+LnH0VmKsbv7HpVc9WMOhUKK2Mnh9Oqon1w8Q4Pv95mpEvajvSCJ1PG9zaTFxKRFgHEM0hlC7oE60LlueKrjhrT4wvt4aIifXiBT9kP2A7EtPXGxlafSTIwejDldN6eV5gXKp8raW5o3gW5A/fBWFmVYiC0Rv6fre+vuDgziQdPFBVjm94Cd/LRYj1/BuX5fnSF9ydldwnVtQdrWjchvllCpVj5GJOMfp3ED/6b7tuNNvnGI09L3RhiqYVw4aZNidhBvDrdP+IXnN8sS7qUS0K1OSQaOQ9EmwEhwslRkU28oGItJQSQ315l1VV05UmEI6Sw3IivTPtHBh4oF4yz5JUPtxLrsVbe2KNujYpU+IWweOvZCrnaWhsyleqycRivzJIIx+9wsH5s14tBtbusp2fTq/TdhU3UJtJMPl5vgA6unEh1yCtMLPRZLJrRuV/nxX0jAwTLpRASnfOT4hDO0j6BnfF8QatVRsks6VdAdOWhixT2desPsZ2uEuuXYqpyQ9nCLV5WuCD08sMAfVLTFMeV45KGLDfT3nDwRRAy3tXziR4MgaWvXCzFSBuFnGUBZOUY9ZWeatvDdM9wiKLV4gtJdMn”
}
],
“role”: “model”
},
“finishReason”: “STOP”,
“index”: 0
}
]

Informations sur votre configuration n8n

  • Version n8n :
  • Base de données (par défaut : SQLite) :
  • Paramètre n8n EXECUTIONS_PROCESS (par défaut : own, main) :
  • Exécution de n8n via (Docker, npm, n8n cloud, application de bureau) :
  • Système d’exploitation :

Ceci est la sortie du déclencheur d’évaluation initial. Il y a un champ « _rowsLeft » : 1 qui signifie que le déclencheur reconnaît qu’il y a plusieurs lignes dans la feuille Google d’évaluation.

[

{

"row_number": 2,


"row_id": 1,


"first_name": "John",


"expected_output": "",


"actual_output": "Hello! How can I help you today?",


"_rowsLeft": 1

}

]

Merci. J’exécute définitivement l’exécution complète.

J’ai essayé 1-4 et il n’y a eu aucun changement.

J’ai aussi essayé 5 et cela n’écrit toujours qu’une seule ligne. Il y a peut-être un bug. Voici le flux de travail simplifié :

Je peux reproduire ce qui semble être le même problème sur n8n auto-hébergé 2.20.9.

Dans mon cas, l’Evaluation Trigger utilise une Data Table, pas Google Sheets. La première ligne du dataset s’exécute avec succès, et la sortie de l’Evaluation Trigger contient _rowsLeft / rows_left > 0, mais aucune deuxième exécution du workflow n’est lancée.

J’ai vérifié l’onglet Network du navigateur : après avoir cliqué sur le bouton « Execute workflow » à côté de l’Evaluation Trigger, il n’y a qu’une seule requête /run. Après la fin de la ligne 1, aucune deuxième requête /run n’est déclenchée.

Cela fonctionnait pour nous sur n8n 2.17.5 et a cessé de fonctionner après la mise à niveau vers 2.20.6 / 2.20.9. Le problème se reproduit sur plusieurs workflows et plusieurs Data Tables avec les filtres désactivés.

Cela donne l’impression que l’Evaluation Trigger détecte correctement les lignes restantes, mais l’éditeur/évaluateur ne continue pas la boucle d’évaluation.

Je n’ai pas encore trouvé de solution de contournement ou de correctif. Si quelqu’un trouve une solution, merci de me la faire savoir.

Mise à jour : J’ai rétrograder vers n8n 2.18.7, et le Evaluation Trigger fonctionne à nouveau là-bas.

Jusqu’à présent, c’est la dernière version que j’ai testée où le Evaluation Trigger parcourt correctement toutes les lignes du dataset.

@superkyle
Vous cliquez sur Run tests dans l’onglet Evaluations du workflow, ou vous utilisez le bouton d’exécution normal de l’éditeur ? Votre typeversion est bizarre… Quelle est votre version de n8n ? Avez-vous créé ce workflow manuellement ou l’avez-vous importé à partir d’un template ?
Un autre point que j’ai remarqué, “outputValue” devrait être ={{ "Hello " + $json.first_name }} ou juste du texte fixe sans le =, le trigger d’évaluation s’attend à ce que l’évaluation finale écrive le résultat dans la feuille Google sur la même ligne que celle qui a été lue (cela pourrait générer une erreur silencieuse).

Cliquez-vous sur Run tests dans l’onglet Evaluations du workflow, ou utilisez-vous le bouton de lancement normal de l’éditeur ?

  • Je clique définitivement sur Run tests.

Quelle version de n8n utilisez-vous ?

  • J’utilise n8n cloud. Donc, la dernière version.

Avez-vous créé ce workflow manuellement ou l’avez-vous importé à partir d’un modèle ?

  • Je l’ai créé manuellement en me basant sur la documentation d’évaluation.

« outputValue » devrait être ={{ "Hello " + $json.first_name }} ou simplement du texte brut sans le =

  • Ce ne semble pas être le problème, car le workflow d’évaluation écrit avec succès dans la feuille Google pour la première ligne. Le problème est qu’il ne s’exécute que pour la première ligne.

ok, mais le flux d’évaluation écrit-il avec succès sur la première ligne ET sur la deuxième ligne et au-delà ?

@superkyle
Ouvre le nœud Evaluation après l’exécution, le champ actual_output affiche-t-il la valeur correcte ou est-il vide/en erreur ?

Le problème est que le flux de travail d’évaluation écrit avec succès sur la première ligne, mais ne boucle pas et ne continue pas sur les lignes suivantes.

Le résultat réel affiche bien la valeur correcte pour la première ligne. Il n’y a pas d’erreur. Vous pouvez le voir ici n8n eval testing - Google Sheets

@superkyle

En relisant votre JSON, j’ai remarqué que le nœud Evaluation n’a pas de sortie connectée (“main”: []). Comme le Evaluation Trigger doit continuer le cycle pour traiter les lignes suivantes, cela pourrait faire arrêter le flux après la première. Essayez de reconnecter la sortie d’Evaluation à When fetching a dataset row et relancez le test. Si cela résout le problème, confirmez-le ici pour aider à valider le comportement.

Il n’est pas possible de reconnecter la sortie à « When fetching a dataset row » car « When fetching a dataset row » est un déclencheur d’évaluation. Selon la documentation, il doit parcourir toutes les lignes après l’exécution du nœud setOutputs.

ok, ma faute, je me suis trompé.
je comprends que tu ne sois pas d’accord pour revoir l’expression, mais c’est essentiel de confirmer ça parce que je n’arrive pas à reproduire ton erreur. Si Set outputs ne se termine pas correctement à la première ligne, ça pourrait expliquer pourquoi le runner n’avance pas aux suivantes.
par faveur, teste avec ={{ 'Hello ’ + $json.first_name }}

Merci d’avoir regardé dans cette direction. J’ai essayé ça et ça ne change rien. Ça ajoute juste un = à l’avant de la sortie. Ce n’est pas le problème car la sortie définie se termine correctement sur la première ligne.

je m’excuse, j’ai fait une erreur plus haut.
si le setoutputs ne se termine pas correctement, il va réussir à traiter la première ligne mais ne va pas pouvoir passer aux suivantes.