Logo

Guide étape par étape pour maîtriser les flux de travail Dify

avatar admin 02 Dec 2024

Guide étape par étape pour créer une application de diffusion d’informations avec Dify

Introduction

Dans cet article de blog, nous allons montrer comment utiliser les flux de travail de Dify pour créer une application de diffusion d’informations.

Notre objectif est d’obtenir les derniers articles de Hacker News et de les diffuser dans un groupe Feishu. À travers ce processus, nous allons découvrir la puissance des flux de travail et la commodité du traitement automatisé.

Qu’est-ce qu’un flux de travail ?

Avant de commencer, faisons un bref aperçu des flux de travail.

Un flux de travail (Workflow) est une série de tâches, d’activités ou d’étapes ordonnées, conçues pour accomplir un processus d’affaires ou un flux de travail spécifique. Le flux de travail décrit l’ordre des tâches, les conditions, les responsables et d’autres informations pertinentes pour garantir que le travail se déroule selon les processus et règles établis. Les flux de travail impliquent généralement la coordination et l’interaction entre plusieurs participants et systèmes.

Les flux de travail réduisent la complexité des systèmes en décomposant des tâches complexes en sous-tâches plus petites (nœuds), diminuant ainsi la dépendance à la technologie des invites et aux capacités de raisonnement des modèles, améliorant ainsi la performance des applications LLM face à des tâches complexes, tout en augmentant l’interprétabilité, la stabilité et la tolérance aux pannes du système.

Types de nœuds utilisés

Dans le processus de mise en œuvre, nous allons utiliser les types de nœuds suivants :

  1. Nœud de début : configure les paramètres initiaux du programme.
  2. Nœud de requête HTTP : envoie une requête HTTP pour obtenir des données.
  3. Nœud d’itération : parcourt un tableau pour exécuter plusieurs étapes.
  4. Nœud d’extraction de paramètres : traite et extrait des paramètres.
  5. Nœud de modèle : permet de réaliser des transformations de données, du traitement de texte, etc., de manière flexible grâce au langage de modèle Python Jinja2.
  6. Nœud LLM : appelle un grand modèle de langage pour traiter le langage naturel.
  7. Nœud d’envoi de message Feishu : diffuse les informations traitées dans Feishu.

Étapes d’opération

Étape 1 : Début

start.png

Grâce au nœud de début, nous pouvons configurer les paramètres initiaux du programme, tels que la clé API, la catégorie d’opération, etc. Ainsi, nous faisons le premier pas. Ensuite, nous commençons à récupérer les données souhaitées.

Étape 2 : Requête HTTP

Prenons Hacker News comme exemple, trouvons d’abord l’API pour obtenir la liste des données https://hacker-news.firebaseio.com/v0/beststories.json?print=pretty.

Créez un nœud de requête HTTP, vous pouvez configurer la requête HTTP, y compris l’URL, les en-têtes de requête, les paramètres de requête, le contenu du corps de la requête et les informations d’authentification, etc.

http.png

La valeur de retour de la requête HTTP comprend le corps de la réponse, le code d’état, les en-têtes de réponse et les fichiers, etc. Ces variables peuvent être utilisées directement dans les nœuds suivants, ce qui est très pratique.

Une fois le nœud configuré, nous pouvons essayer de l’exécuter.
http_result.png

La requête a réussi et nous avons obtenu les IDs de la liste des articles. Tout se passe bien, nous devons maintenant parcourir les IDs pour obtenir les détails des articles.

Étape 3 : Itération

L’itération sert à exécuter plusieurs étapes sur un tableau jusqu’à ce que tous les résultats soient produits, c’est un outil pour les tâches répétitives. Des cas d’application incluent : générateurs d’articles longs, requêtes itératives, etc.

Il suffit d’entrer les IDs obtenus de la liste des articles dans l’itérateur.
Iteration.png

Cependant, après avoir connecté le nœud d’itération, nous constatons qu’il n’y a pas de variables disponibles. En consultant la documentation, nous découvrons :

La condition d’utilisation de l’itération est de s’assurer que la valeur d’entrée est déjà formatée en tant qu’objet liste

Dans le format de retour de la requête de liste ci-dessus, le corps est une chaîne. Nous devons donc traiter le résultat retourné et introduire un extracteur de paramètres avant le nœud d’itération.
Paras.png

Prenez le corps retourné de la liste comme paramètre d’entrée, et définissez l’extraction des paramètres comme un tableau numérique d’IDs. Déclarons simplement l’instruction :

exemple : 
corps : [1,2,3,4,5...500]
retourner Array[Number], et ne garder que 10

Ainsi, nous pouvons non seulement extraire les paramètres, mais aussi prétraiter les paramètres, par exemple en limitant le nombre de résultats, etc. De cette manière, nous pouvons nous assurer qu’en nous connectant au nœud d’itération, nous obtenons un tableau d’IDs formaté et conforme aux exigences.
Para2.png

Dans le nœud d’itération, nous pouvons obtenir chaque élément parcouru, c’est-à-dire chaque id d’article. De cette manière, nous pouvons effectuer un traitement supplémentaire sur chaque id, par exemple en envoyant une nouvelle requête HTTP pour obtenir les détails de l’article. Ainsi, nous pouvons traiter chaque id un par un, en nous assurant que chaque article peut être correctement récupéré et traité.

7.png

Ensuite, nous ajoutons le nœud HTTP pour demander les détails, et en exécutant, nous pouvons obtenir les résultats des détails.

En tirant parti de l’expérience précédente, nous notons que la variable de sortie de l’itérateur est Array[String].

Ce que nous devons faire ensuite est d’utiliser le nœud LLM pour organiser et résumer les résultats retournés, voyons le nœud LLM.

Étape 4 : Nœud LLM

Le nœud LLM sert à appeler un grand modèle de langage pour répondre à des questions ou traiter le langage naturel.

Si vous utilisez Dify pour la première fois, avant de choisir un modèle dans le nœud LLM, vous devez d’abord compléter la configuration du modèle dans Paramètres système - Fournisseur de modèle.

Nous créons un nouveau nœud LLM connecté à l’itération et configurons notre prompt. Lorsque nous saisissons le contenu de l’utilisateur, nous constatons que nous ne pouvons pas obtenir les détails de l’article, car le nœud LLM ne prend pas en charge les paramètres d’entrée au format tableau, nous devons donc convertir le tableau en texte pour continuer.

8.png

En consultant la documentation Comment convertir un tableau en texte, nous découvrons que nous devons utiliser un nœud de code pour la conversion ou un nœud de modèle pour la conversion.

Ici, nous utilisons le nœud de modèle pour la conversion :
9.png

10.png

Ainsi, notre nœud LLM peut fonctionner normalement, cliquez sur exécuter pour déboguer.

11.png

Exécution réussie.

Étape 5 : Envoyer un message Feishu

Ensuite, nous allons diffuser les informations organisées dans Feishu, ajoutons un nœud - Outil - Envoyer un message Feishu.

Après avoir créé un robot dans le groupe Feishu, obtenez la clé WEBHOOK et remplissez-la :
12.png

Résultat final

Exécutez à nouveau, les résultats s’affichent :
13.png

Ainsi, nous avons complété une application Dify pour la récupération d’informations - le traitement des données - la diffusion dans IM. À travers ce processus, nous avons montré comment utiliser les flux de travail de Dify pour réaliser une diffusion automatisée d’informations et avons expérimenté la puissance et la commodité des flux de travail.

Conclusion

Aujourd’hui, nous avons appris à utiliser les flux de travail de Dify pour créer une application de diffusion d’informations. En commençant par la configuration des paramètres initiaux, nous avons progressivement récupéré des données via des requêtes HTTP, utilisé des nœuds d’itération pour traiter les données, puis organisé les données via le nœud LLM, et enfin diffusé les informations organisées dans Feishu. L’ensemble du processus a non seulement démontré la puissance des flux de travail, mais nous a également permis d’expérimenter la commodité du traitement automatisé.

Bien sûr, les puissantes fonctionnalités des flux de travail Dify ne s’arrêtent pas là. Ils offrent encore plus de nœuds et de fonctionnalités, attendant d’être explorés et appliqués. Nous continuerons à publier des articles connexes pour vous guider dans l’apprentissage et l’exploration des nombreuses possibilités des flux de travail Dify.

Tags
Dify
workflow
feishu