Slice List
Le node Slice List extrait une plage d'éléments d'une liste à partir d'indices de début et de fin, et renvoie une nouvelle liste limitée à cette plage.
À quoi sert le node Slice List ?
Le node Slice List est un outil de traitement de listes qui extrait une plage contiguë d’éléments d’un tableau JSON à partir d’un indice de début et d’un indice de fin. Il renvoie une nouvelle liste contenant uniquement les éléments compris dans la plage demandée, sans modifier la liste d’origine. Il est particulièrement utile pour paginer, rogner ou ignorer des lignes avant de transmettre les données à un Loop, à un LLM ou à n’importe quel node aval.
Cas d’usage typiques :
- Ne garder que les N premiers résultats renvoyés par une API ou un node de recherche avant de les envoyer à un LLM.
- Paginer de grandes listes en blocs plus petits (éléments 0-9, puis 10-19, etc.) pour rester dans les limites du modèle ou du runtime.
- Ignorer la ligne d’en-tête d’un tableur importé pour qu’un Loop ne traite que les lignes de données.
Configuration rapide
Suivez ces étapes pour ajouter et configurer le node Slice List dans votre workflow :
Ajouter le node au canevas
Ouvrez la bibliothèque de nodes (Node Library), naviguez dans la catégorie Tools, puis glissez-déposez le node Slice List sur votre espace de travail.
Connecter la liste en entrée
Reliez la sortie d’un node qui produit une liste (comme Create List, Google Sheets ou un API Connector) à l’entrée list (à gauche du node).
Définir la plage
Ouvrez les paramètres du node et configurez start_index (indice de début, inclus) et end_index (indice de fin, exclus) pour définir la portion de liste à conserver.
Connecter la sortie
Reliez la sortie sliced_list (à droite du node) au node suivant. Définissez le nom de la variable de réception directement dans ce node suivant pour exploiter la liste découpée.
Paramètres de configuration
La configuration du node consiste à indiquer quelle liste découper et quelle plage conserver.
Champs requis
Name string required default: Slice List Nom du node — Utile pour identifier d’un coup d’œil le rôle du node (ex : “Garder top 5 résultats”) lors de l’exécution et du débogage du workflow.
Description string required default: Extract a range of items from a list using start and end indices Description du node — Une courte phrase décrivant la plage extraite et la raison.
list json required Liste d’entrée — La liste à découper. Doit être un tableau JSON valide (ex : ["a", "b", "c"]) provenant d’un node précédent. Les chaînes simples ou les objets ne sont pas acceptés.
Champs optionnels
start_index number default: 0 Indice de début — L’indice (base zéro) où la découpe commence (inclus). Minimum : 0. Laisser vide pour utiliser la valeur par défaut 0 (début de la liste).
end_index number default: 100 Indice de fin — L’indice (base zéro) où la découpe se termine (exclus). Minimum : 0. Laisser vide pour utiliser la valeur par défaut 100. Si end_index dépasse la taille de la liste, le node renvoie simplement jusqu’au dernier élément.
Les indices suivent la convention standard du slicing : l’élément à start_index est inclus, celui à end_index ne l’est pas. Pour garder les 5 premiers éléments, utilisez start_index = 0 et end_index = 5.
Que renvoie le node ?
Le node renvoie un tableau JSON (sliced_list) contenant les éléments situés entre start_index (inclus) et end_index (exclus) de la liste d’entrée. La liste d’origine n’est pas modifiée et l’ordre des éléments est préservé.
Comment récupérer l’output ?
Dans Draft & Goal, vous n’avez pas besoin de chercher un nom de variable complexe généré par le système. Pour exploiter le résultat :
- Tirez un lien depuis la sortie
sliced_listdu node Slice List. - Connectez-le à l’entrée du node suivant.
- Dans ce node suivant, créez et nommez votre propre variable (par exemple,
top_resultats). La liste découpée y sera automatiquement injectée.
sliced_list json Un tableau JSON contenant les éléments dans la plage spécifiée. Vide si start_index est supérieur ou égal à la taille de la liste, ou si start_index est supérieur ou égal à end_index.
{
"sliced_list": ["banana", "cherry", "date"]
}
Exemples d’utilisation
Cas 1 : Garder les 5 meilleurs résultats d’une API
Vous interrogez une API qui renvoie 50 résultats, mais vous ne voulez que le LLM résume les 5 plus pertinents.
Configuration :
list: connectée à la sortie de l’API Connectorstart_index:0end_index:5
Output généré :
{
"sliced_list": [
{ "title": "Résultat 1", "score": 0.98 },
{ "title": "Résultat 2", "score": 0.95 },
{ "title": "Résultat 3", "score": 0.93 },
{ "title": "Résultat 4", "score": 0.91 },
{ "title": "Résultat 5", "score": 0.88 }
]
}
Le LLM reçoit une liste ciblée et produit un résumé plus précis sans traiter les 45 autres entrées.
Cas 2 : Ignorer la ligne d’en-tête d’un tableur
Vous importez des données depuis Google Sheets où la ligne 0 contient les en-têtes et les lignes 1 à 99 contiennent les vraies données à itérer.
Configuration :
list: connectée à la sortie Google Sheetsstart_index:1end_index:100
Le node Slice List supprime la ligne d’en-tête et ne transmet que les lignes de données au node Loop, qui traite ensuite chaque ligne individuellement.
Problèmes courants
La liste de sortie est vide alors que mon entrée contient des éléments
Cause : Soit start_index est supérieur ou égal à la taille de la liste d’entrée, soit start_index est supérieur ou égal à end_index. Dans les deux cas, la plage est vide par définition.
Solution : Vérifiez la taille réelle de la liste d’entrée et assurez-vous que start_index < end_index et start_index < taille de la liste. Si vous ne connaissez pas la taille à l’avance, mettez end_index à une grande valeur (ex : 10000) pour tout garder à partir de start_index.
Le node échoue avec « Input is not a valid JSON list »
Cause : L’entrée list a reçu une valeur qui n’est pas un tableau JSON — généralement une chaîne simple, un objet unique ou un JSON mal formé.
Solution : Assurez-vous que le node en amont produit un vrai tableau JSON (ex : ["a", "b", "c"]). Si vous chaînez des nodes qui renvoient du texte, insérez un JSON Path Extractor ou un Create List avant Slice List pour construire un véritable tableau.
Je récupère moins d'éléments que prévu en fin de liste
Cause : end_index est exclusif : demander end_index = 5 renvoie les éléments aux indices 0, 1, 2, 3 et 4 — soit cinq éléments, pas six.
Solution : Ajoutez 1 à end_index si vous raisonnez en « jusqu’à l’élément N inclus ». Pour « les N premiers éléments », utilisez start_index = 0 et end_index = N.
Bonnes pratiques et pièges à éviter
Utilisez Slice List comme une primitive de pagination simple : combinez-le avec un compteur ou un Loop pour parcourir une grande liste par pages de taille fixe (ex : éléments 0-9, 10-19, 20-29) sans surcharger les nodes aval ni la fenêtre de contexte d’un LLM.
Attention aux erreurs d’indice : start_index est inclus mais end_index est exclu. Testez toujours la découpe sur une petite liste connue avant de la brancher dans un workflow de production sur un gros volume de données.
Comment s’intègre-t-il dans un workflow ?
Le Slice List agit typiquement comme une étape de “rognage” ou de “pagination” entre une source qui produit une liste (API, Sheets, recherche) et un consommateur de liste (Loop, LLM, extracteur). Voici un schéma typique d’intégration pour résumer uniquement les meilleurs résultats d’une API :
graph LR
API[API Connector] --> Slice[Slice List
<br/>garde top 5]
Slice --> LLM[LLM résume les résultats]
LLM --> Output[Output final]
Nodes complémentaires
Construisez une liste de zéro, puis réduisez-la avec Slice List.
Découpez une liste en plusieurs lots quand vous avez besoin de tous les morceaux, pas seulement d’une plage.
Gardez des éléments par condition plutôt que par position — combinez avec Slice List pour des top-N classés.
Itérez sur la plage extraite, élément par élément.