Prise en main de N8N et retour d’expérience

Une après-midi, Yaniv, notre très cher CEO, est venu voir notre équipe avec un enthousiasme plus débordant que d’habitude: quelqu’un lui avait fait une démo de N8N et Yaniv avait été impressionné par l’UX de l’outil, qui rendait, selon ses dires, le chaînage d’agents extrêmement facile.

Piqué par la curiosité, me voici en train d’écrire un article de blog à ce sujet.

Qu’est-ce que N8N?

N8N est une plateforme d’automatisation de workflows. Mais qu’est-ce que cela signifie ? Cela signifie, que comme avec de nombreux autres outils, commerciaux et open-source (N8N est open-source), on poursuit le Saint-Graal des knowledge workers depuis la digitalisation de notre activité économique:

  • automatiser des tâches répétitives
  • modéliser des processus métiers
  • intégrer ces automatisations et modélisations à des systèmes externes

N8N est-il une énième arlésienne (à 54K stars sur GitHub quand même) ou bien est-ce un outil qui peut réaliser ses promesses de manière réaliste ? Je vais tâcher d’acquérir une intuition à ce sujet durant l’écriture de cet article !

Tour d’essai

On skip le bla bla (bien que très intéressant) sur la licence fair-code et le fait (d’une importance majeure) que l’outil soit self-hostable: je vous laisserai regarder ça sur le repo, je suis trop pressé d’essayer !

Apparemment j’ai juste besoin de NPM comme prérequis. J’ai créé un dossier n8n-demo et j’ai run un npx n8n; cela est censé m’ouvrir un éditeur de workflows dans mon navigateur, servi localement.

Je suis accueilli par un rapide questionnaire sur mon utilisation de l’outil et on me propose une « free activation key » pour des features payantes (un peu chelou pour un soft en open-source), je ne sais pas à quoi servent ce questionnaire et la proposition qui a suivi, mais passons…

A l’ouverture de l’éditeur, j’ai le choix entre créer un workflow from scratch et utiliser un des templates; pour m’amuser un peu et être en mesure d’apprécier l’UX de l’outil du point de vue d’un néophyte, je vais commencer par le from scratch. Je n’ai aucune idée de ce que je vais build, je vais me laisser guider par l’outil !

L’outil semble permettre de créer des workflows avec pour brique fondamentale le « step », qui a lui-même un trigger. On est donc dans quelque chose d’event-driven, intéressant dans la mesure où ces triggers ne sont pas du tout des contraintes: en effet, de l’action manuelle au temps qui passe, en passant par les changements dans le système de fichiers de votre machine, jusqu’aux messages de chat et à l’appel d’un webhook, on n’est pas du tout limité par des conditions d’activation rigides pour trigger les workflows, ce qui est prometteur !

Ok, j’ai créé mon point d’entrée de workflow, et maintenant ?

Je rejoins Yaniv: l’UI est très intuitive et très claire, je comprends ce qu’il se passe à chaque étape et je me sens guidé, alors que c’est ma première utilisation ! C’est rafraîchissant.

Lorsque je déclenche mon application via un (ou plusieurs) point d’entrée (trigger), je peux décider de faire plein de choses avec mon workflow (cf. capture plus haut), blog de l’IA squad oblige, je vais clicker sur « Advanced AI » -> « Basic LLM Chain ».

Je ne sais pas du tout sur quoi je vais tomber. Perso, j’aimerais bien voir ce que je peux faire avec un SLM (Small Language Model) comme Llama3.1:8B sur mon laptop…

… et il s’avère que c’est extrêmement facile ! Je peux même set certains paramètres comme le Top K, la température, etc. de mon SLM.

Essayons de faire de l’extraction structurée de données: je vais passer du contenu aléatoire provenant des actualités et je vais faire en sorte que le LLM me sorte les 5W (who, what, when, where, how) afférents. Je vais utiliser un « Structured Output Parser » -> « Generate From JSON Example » pour cela.

{
   "input": "Saudi budget airline flyadeal is putting the finishing touches to a deal to order 10 Airbus A330neo jets in its first full-blown expansion into wide-body planes, as the kingdom pursues a surge of spending on aviation,",
  "WHO": "flyadeal, a Saudi budget airline (subsidiary of Saudi Arabian Airlines/Saudia)",
  "WHAT": "Finalizing a deal to order 10 Airbus A330neo wide-body aircraft",
  "WHERE": "Saudi Arabia",
  "WHEN": "Current/Ongoing (as of early 2024)",
  "HOW": "To execute their first major expansion into wide-body aircraft operations"
}

L’idée est ici de passer en input un titre de journal et de recevoir les 5Ws en output. Let’s run it !

L’output que je reçois est absolument conforme à mes attentes:

{
  "output": {
    "input": "New Apple products expected this spring",
    "WHO": "Apple",
    "WHAT": "new iPhone SE 4, iPad 11 and more",
    "WHERE": "expected to be launched this spring",
    "WHEN": "spring",
    "HOW": "launch frenzy"
  }
}

What’s next?

Une fois que vous avez découvert N8N, quelques idées pour aller plus loin au sein de votre organisation:

  • mettre à disposition une instance personnalisée pour chaque membre de votre équipe afin que tout le monde puisse automatiser son travail (avec clés APIs ou modèles locaux pré configurés)
  • explorer les templates
  • les possibilités sont infinies !

Nous sommes si enthousiastes que nous sommes en train de déjeuner devant l’outil en ce moment même ! Hâte de vous raconter nos expérimentations lors de futurs articles.

Partager l'article:

Autres articles