Split List
Le node Split List divise une liste en lots plus petits d'une taille donnée et renvoie un tableau de tableaux pour un traitement par lots en aval.
À quoi sert le node Split List ?
Le node Split List prend une liste et la découpe en lots plus petits d’une taille fixe. Il renvoie un tableau de tableaux, où chaque tableau interne contient au maximum batch_size éléments. Le dernier lot peut contenir moins d’éléments si la longueur de la liste n’est pas un multiple exact de la taille de lot.
C’est la brique de base de tout schéma “traiter N éléments à la fois” : limitation de débit, parallélisation avec Loop, pagination de résultats.
Cas d’usage typiques :
- Regrouper des appels API pour que chaque requête respecte la limite d’éléments par requête ou la limite de débit du fournisseur.
- Découper un grand jeu de données (lignes Sheets, URLs scrapées) en morceaux avant de les envoyer à un LLM.
- Paginer des résultats pour l’affichage ou pour un traitement échelonné en aval.
Configuration rapide
Suivez ces étapes pour ajouter et configurer le node Split List dans votre workflow :
Ajouter le node au canevas
Ouvrez la bibliothèque de nodes (Node Library), allez dans Tools, puis glissez-déposez le node Split List sur votre espace de travail.
Connecter l’entrée liste
Reliez la sortie d’un node qui produit une liste (Create List, Google Sheets, JSON Path Extractor, etc.) à l’entrée list à gauche du node.
Définir la taille des lots
Ouvrez les paramètres du node et définissez Batch Size au nombre d’éléments que chaque lot doit contenir. Le minimum est 1 et le maximum est 100.
Connecter la sortie
Reliez la sortie batches (à droite du node) au node suivant — typiquement un node Loop qui itère sur chaque lot.
Paramètres de configuration
Le node a une entrée requise et un paramètre.
Champs requis
Name string required default: Split List Nom du node — Utile pour identifier le node lors de l’exécution et du débogage du workflow (ex : “Lots d’URLs par 10”).
Description string required default: Split a list into smaller batches of a given size Description du node — Courte phrase décrivant ce que fait ce node Split List dans votre workflow.
list json required Liste d’entrée — La liste à diviser. Accepte tout tableau JSON valide. Si une chaîne JSON est passée, le node la parse ; si le parsing échoue, il lève “Split List node: Input is not a valid JSON list”.
Champs optionnels
batch_size number default: 2 Taille des lots — Nombre d’éléments par lot. Doit être compris entre 1 et 100 inclus. Le dernier lot peut contenir moins d’éléments si la longueur de la liste n’est pas un multiple de batch_size.
Choisissez batch_size en fonction de la contrainte en aval — limite par requête de votre API, budget tokens de votre LLM, ou parallélisme géré par votre runner.
Que renvoie le node ?
Le node renvoie une seule valeur, batches, contenant un tableau de tableaux. Chaque tableau interne contient jusqu’à batch_size éléments dans leur ordre d’origine.
batches json Un tableau de tableaux. Chaque tableau interne est un lot de jusqu’à batch_size éléments de la liste d’entrée, dans le même ordre.
Comment récupérer l’output ?
Dans Draft & Goal, tirez un lien depuis la sortie batches du node Split List vers le node suivant (le plus souvent un Loop). Dans le Loop, chaque itération reçoit un lot comme élément courant, que vous pouvez ensuite injecter dans un API Connector, un LLM, ou tout autre node en aval.
Exemples d’utilisation
Cas 1 : Regrouper des appels API pour respecter les limites de débit
Vous avez 100 URLs à scraper et l’API cible autorise 10 éléments par requête. Split List divise la liste en 10 lots de 10, et Loop envoie chaque lot séquentiellement.
Configuration :
batch_size:10
graph LR
A[Create List] --> B[Split List]
B --> C[Loop]
C --> D[API Connector]
Output (tronqué) :
{
"batches": [
["https://a.com", "https://b.com", "..."],
["https://k.com", "https://l.com", "..."]
]
}
Cas 2 : Découper des lignes Sheets pour une analyse LLM en parallèle
Un tableur contient 50 lignes. Split List crée 10 lots de 5 lignes. Chaque lot est envoyé à un LLM pour analyse, et Merge Lists réassemble les résultats.
Configuration :
batch_size:5
graph LR
A[Google Sheets] --> B[Split List]
B --> C[Loop]
C --> D[LLM analyse le lot]
D --> E[Merge Lists]
Problèmes courants
La sortie est un seul lot contenant tous les éléments
Cause : batch_size est supérieur ou égal au nombre d’éléments de la liste d’entrée, donc tous les éléments tiennent dans un seul lot.
Solution : Diminuez batch_size pour que list.length / batch_size > 1. Si la liste est réellement petite, ce comportement est attendu.
Erreur : Split List node: Input is not a valid JSON list
Cause : L’entrée list était une chaîne non parsable comme JSON, ou le node en amont a produit autre chose qu’un tableau (objet, chaîne simple, null).
Solution : Vérifiez que le node en amont produit une vraie liste. Si vous construisez la liste manuellement, assurez-vous que c’est du JSON valide comme ["a", "b", "c"]. Utilisez un JSON Path Extractor pour extraire un tableau d’un objet imbriqué au préalable.
Erreur : batch_size must be between 1 and 100
Cause : Vous avez défini batch_size à 0, à un nombre négatif, ou à une valeur supérieure à 100.
Solution : Définissez batch_size comme un entier dans l’intervalle [1, 100]. Pour de très gros volumes, traitez en plusieurs étapes : split, traitement, puis merge et split à nouveau avec une autre taille.
Le Loop en aval atteint quand même la limite de débit
Cause : Loop itère séquentiellement sur les lots, mais les éléments à l’intérieur d’un lot sont eux toujours envoyés en parallèle par le node en aval. Réduire le nombre de lots ne réduit pas la concurrence interne au lot.
Solution : Réduisez batch_size pour que chaque lot reste sous la limite de débit par fenêtre. Si l’API limite le nombre d’éléments par requête, fixez batch_size exactement à ce plafond.
Bonnes pratiques
Le schéma canonique est Split List → Loop → (traitement) → Merge Lists. Split crée les lots, Loop itère, le node de traitement traite un lot à la fois, et Merge Lists aplatit les résultats en une seule liste pour la suite.
batch_size est plafonné en dur à 100. Si vous avez besoin de lots plus gros pour la performance, ce plafond vous bloquera silencieusement — le node lève une erreur au lieu d’honorer la taille demandée. Anticipez la limite.
Nodes complémentaires
Construisez la liste d’entrée quand vous n’en avez pas en provenance d’un node amont.
Itérez sur les lots produits par Split List, un par un.
Aplatissez les résultats par lot en une seule liste après la fin du Loop.
Utilisez Slice List quand vous voulez une seule sous-plage, pas un découpage complet.
Filtrez la liste avant le split pour ne garder que les éléments pertinents dans les lots.
Inspectez la longueur d’entrée pour choisir un batch_size pertinent.