Accéder au contenu principal

Dify AI : Un guide avec un projet de démonstration

Découvrez ce qu'est Dify et comment créer un agent de voyage IA à l'aide de son interface "drag-and-drop" à code basique.
Actualisé 29 mai 2025  · 12 min de lecture

Dify est une plateforme conviviale qui vous aide à créer des applications d'IA avec peu ou pas de code requis. Il fonctionne par glisser-déposer de blocs ayant différentes fonctions. Les informations circulent à travers les blocs et sont traitées et combinées pour générer des réponses.

Dans cet article, je vais vous expliquer les principes fondamentaux de Dify en vous guidant à travers les étapes de la création d'un agent de voyage IA.

Nous tenons nos lecteurs informés des dernières nouveautés en matière d'IA en leur envoyant The Median, notre lettre d'information gratuite du vendredi qui analyse les principaux sujets de la semaine. Abonnez-vous et restez à la pointe de la technologie en quelques minutes par semaine :

Qu'est-ce que Dify ?

Dify est une plateforme conçue pour simplifier le développement d'applications d'intelligence artificielle sans nécessiter de compétences approfondies en matière de codage. Il offre un environnement convivial, à code réduit, dans lequel les utilisateurs peuvent créer des applications en glissant et déposant différents composants.

Imaginez Dify comme une boîte à outils numérique remplie de blocs prêts à l'emploi qui peuvent être assemblés pour créer un logiciel fonctionnel. Cette approche rend la technologie plus accessible, permettant aux personnes ayant des connaissances limitées en programmation de donner vie à leurs idées.

Chaque type de bloc a des entrées et les transforme en différentes sorties, en fonction du type de bloc. L'information est transmise et transformée d'un bloc à l'autre pour produire le résultat final.

Démarrer avec Dify

Nous avons deux façons d'utiliser Dify :

  • Configuration locale.
  • Utilisation de la version cloud.

Dans ce tutoriel, nous utilisons la version cloud. La version cloud de Dify propose un plan gratuit, il est donc possible de suivre ce tutoriel sans avoir besoin d'un abonnement payant.

Si vous êtes intéressé par la configuration locale, le moyen le plus simple est de le faire :

  1. Téléchargez ou clonez Dify depuis le dépôt officiel.
  2. Exécutez Dify en utilisant Docker comme décrit dans la section section Démarrage rapide du README du référentiel.

Créer un Chatflow avec Dify

Dify propose plusieurs types d'applications. Nous allons nous concentrer sur la construction d'une application Chatflow, qui est un flux d'IA où les utilisateurs utilisent une interface de chat pour interagir avec l'agent.

Pour créer une nouvelle application Chatflow, cliquez d'abord sur "Créer à partir de rien" et sélectionnez l'option "Chatflow".

Création d'un flux noir dans Dify

Pour créer le flux, nous lui donnons un nom, puis nous cliquons sur le bouton "Créer" :

Créer un Chatflow dans Dify

Cela créera le flux par défaut suivant :

Le Chatflow par défaut dans Dify

Ce flux comporte trois blocs :

  • Le bloc de démarrage est responsable du démarrage du flux. Dans le cas d'un Chatflow, le flux est lancé par l'envoi d'un message par l'utilisateur.
  • Le nœud LLM prend en entrée le message de l'utilisateur et l'envoie à un LLM, gpt-4 dans le cas présent.
  • Le dernier nœud est utilisé pour afficher un message dans le chat. Dans cet exemple, il est connecté au nœud LLM, de sorte que la sortie du nœud LLM est envoyée au chat.

Ces trois nœuds réunis créent effectivement un chat d'IA similaire au ChatGPT. Avant d'exécuter cette application, nous devons installer et configurer le plugin OpenAI.

Installation et configuration du plugin OpenAI

Pour installer le plugin OpenAI, procédez comme suit :

  1. Cliquez sur le bouton "Plugins" dans le coin supérieur droit.

Ajouter le plugin openai sur dify

  1. Cliquez sur "Installer à partir de la place de marché".

Accéder au marché sur dify

  1. Tapez "openai" dans la boîte de recherche et cliquez sur le plugin OpenAI.

Installer le plugin OpenAI sur dify

  1. Sélectionnez le plugin OpenAI et cliquez sur "Installer".

Ensuite, nous devons configurer la clé API OpenAI. Si vous n'en avez pas encore, créez-en un ici. Notez que l'utilisation de l'API OpenAI n'est pas gratuite, vous devrez donc associer une méthode de paiement à la clé API.

Une fois que nous avons une clé, nous pouvons la configurer en :

  1. Sélectionnez le nœud LLM.

Sélection d'un bloc Dify

  1. Cliquez sur l'icône de configuration à côté du nom du modèle.

Configuration d'un bloc LLM sur dify

  1. Cliquez sur le menu déroulant du modèle en haut.

La liste déroulante du modèle

  1. Cliquez sur "Model Provider Settings" en bas de la liste.

Configuration du fournisseur de modèle sur dify

  1. Cliquez sur "Setup" dans la section clé API.

Configuration du modèle sur dify

  1. Collez la clé API et cliquez sur "Enregistrer".

Configurer la clé API OpenAI sur dify

Exécution de l'application

Nous pouvons maintenant exécuter l'application en cliquant sur le bouton de prévisualisation :

Prévisualisation de la demande.

Pour l'instant, ce n'est pas très intéressant car il s'agit seulement d'un chatbot d'IA. Rappelez-vous qu'il ne fera rien tant que l'utilisateur n'aura pas envoyé de message.

Exemple de chat sur dify

Création de variables

Dify permet de stocker l'état de l'application en attribuant des valeurs à des variables accessibles à tous les blocs.

Pour créer une variable, cliquez sur le bouton "Variable" :

Ajout d'une variable sur dify

Créons une variable pour stocker le nom de l'utilisateur :

Configuration des variables sur dify

Cette configuration a créé une variable nommée name qui stocke une chaîne (texte). Nous avons laissé la valeur par défaut vide, de sorte qu'initialement la variable sera une chaîne vide.

Il y a plusieurs façons de l'alimenter, mais la plus courante consiste à utiliser un bloc d'intelligence artificielle pour le déterminer automatiquement à partir de la conversation. Nous verrons plus tard comment procéder. Tout d'abord, nous apprenons à vérifier la valeur d'une variable pour contrôler le flux de l'application.

Blocs IF/ELSE

Pour vérifier la valeur d'une variable, nous pouvons utiliser un bloc IF/ELSE. Ce bloc est utilisé pour exécuter différentes actions en fonction de la valeur d'une variable.

Pour ajouter un nouveau bloc, cliquez sur le bouton "+" en bas :

Ajout d'un bloc sur dify

Sélectionnez ensuite le bloc que vous souhaitez ajouter. Dans ce cas, nous sélectionnons "IF/ELSE" :

Le bloc IF/ELSE sur dify

Ensuite, nous cliquons sur le bloc pour le configurer en sélectionnant la variable name que nous avons créée précédemment.

Pour le tester, nous ajoutons deux blocs Answer. Ces blocs sont utilisés pour afficher un message dans le chat. Nous connectons l'un d'eux à la sortie IF (qui s'exécute lorsque la condition est vraie) et l'autre à la sortie ELSE (qui s'exécute lorsque la condition est fausse).

Contrôler le flux avec un bloc IF/ELSE sur dify

Pour la sortie IF, j'ai défini la chaîne "Sorry, I don't know your name" (Désolé, je ne connais pas votre nom), tandis que pour la sortie ELSE, j'ai défini "Hello, {name} !" (Bonjour, {nom} !). Nous pouvons utiliser les accolades pour injecter une variable dans une chaîne de caractères. Cela sera également utile plus tard lors de l'élaboration des messages-guides.

Nous pouvons essayer ce Chatflow en cliquant sur le bouton "Aperçu". Notez qu'un Chatflow est déclenché par un message de l'utilisateur, nous devons donc d'abord envoyer un message, comme "Hi". Voici les résultats selon que le nom est défini ou non (je l'ai défini manuellement dans la variable d'interface pour le deuxième exemple) :

Résultats du contrôle des flux

Blocs d'assignation de variables et d'extraction de paramètres

Nous pouvons utiliser l'IA pour identifier et extraire les valeurs des variables à l'aide d'un bloc Extracteur de paramètres. Ce bloc utilise un LLM pour extraire des informations de la conversation.

Bloc extracteur de paramètres

Nous commençons par ajouter un bloc Parameter Extractor connecté à la branche IF. Voici la configuration du bloc :

Configuration de l'extracteur de paramètres sur le disque

  • L'adresse INPUT VARIABLE est fixée à sys.query, ce qui correspond au message de l'utilisateur. Cela signifie que le bloc Extracteur de paramètres tentera d'extraire la valeur du message de l'utilisateur.
  • Dans le site EXTRACTION PARAMETERS, nous définissons les informations que nous essayons d'extraire. Malheureusement, nous ne pouvons pas spécifier directement une variable ici, nous devons donc redéfinir cette information en cliquant sur le bouton "+".

Configuration des paramètres sur le disque

  • Le champ INSTRUCTION est l'invite qui guide le LLM sur ce qu'il doit faire.
  • Ensuite, nous ajoutons un bloc d'affectation de variable pour affecter la valeur extraite par l'extracteur de paramètres (le cas échéant) à la variable name.

Bloc d'affectation des variables

Veillez à assigner l'extrait name à la variable name.

Configuration de l'assignateur de variables

Après cette étape, la variable name peut encore être indéfinie, car il se peut que l'utilisateur n'ait pas indiqué son nom. Nous ajoutons donc un autre bloc IF/ELSE pour vérifier. Si le nom est défini, nous accueillons l'utilisateur. Dans le cas contraire, nous demandons leur nom.

Le flux de l'extracteur de noms

Voici un exemple d'interaction :

Exemple de chat avec l'extracteur de nom flow in dify

Ce flux illustre les principes fondamentaux des flux de travail de Dify. Quel que soit le message de l'utilisateur, si le nom n'est pas défini, il tente d'extraire le nom du message. En cas d'échec, il le demande. Sinon, il salue l'utilisateur par son nom.

À ce stade, il n'y a pas de bloc LLM, l'agent ne fera donc rien d'autre.

Bloc de code

Les blocs de code peuvent être utilisés pour exécuter du code Python personnalisé. Modifions le flux précédent pour extraire la localisation de l'utilisateur au lieu de son nom. Nous utiliserons ensuite un bloc de code pour adresser une demande à une API météorologique et envoyer les prévisions météorologiques à l'utilisateur.

  • Créez une nouvelle variable nommée location.
  • Modifiez les blocs IF/ELSE pour vérifier location au lieu de name.
  • Modifiez le bloc de l'extracteur de paramètres pour extraire l'emplacement au lieu du nom.
  • Modifiez le bloc Variable Assigner pour affecter la valeur extraite à la variable location.
  • Modifiez les blocs Answer pour demander l'emplacement et afficher l'emplacement, respectivement.

Après ces étapes, le flux devrait ressembler à ceci :

Flux de l'extracteur d'emplacement dans le dify

Voici un exemple d'interaction :

Exemple de chat avec l'extracteur de lieux

L'étape suivante consiste à ajouter un bloc Code après avoir déterminé l'emplacement. Ce bloc fait une demande à l OpenWeather API OpenWeather pour demander les prévisions météorologiques pour cet endroit.

L'utilisation de cette API est gratuite, à condition que nous ne fassions pas trop de demandes. 

Remplacez le deuxième bloc de réponse par un bloc de code. 

Le bloc Code

Configurez-le pour qu'il reçoive un seul paramètre avec la valeur location.

Configuration du bloc de code

Pour le code Python, voici comment nous pouvons utiliser le paquet requests pour obtenir la météo à partir de l'API OpenWeather :

import requests

API_KEY = "PASTE_YOUR_API_KEY_HERE"

def main(location: str) -> str:
    base_url = "http://api.openweathermap.org/data/2.5/weather"
    params = {
        "q": location,
        "appid": API_KEY,
        "units": "metric",
    }
    response = requests.get(base_url, params=params)
    data = response.json()
    if response.status_code == 200:
        weather_desc = data["weather"][0]["description"]
        temp = data["main"]["temp"]
        return {
            "result": f"Current weather in {location}: {weather_desc}, Temperature: {temp}°C"
        }
    else:
        return {
            "result": "Could not retrieve weather data",
        }

Enfin, nous connectons la sortie du nœud Code à un nœud Answer pour l'afficher à l'utilisateur.

Affichage du résultat du bloc de code

Nous avons maintenant un Chatflow qui peut nous donner les prévisions météorologiques :

Exemple de ce que fait l'agent météorologique

Projet : Création d'un agent AI pour la planification des voyages

Nous disposons désormais de tous les outils nécessaires pour créer un agent de voyage intelligent. Les possibilités sont infinies, mais pour éviter de trop compliquer ce tutoriel, nous allons rester simples.

L'agent se concentrera sur la planification d'une seule journée du voyage. Il commencera par recueillir l'emplacement de l'utilisateur et les types d'activités qu'il aime faire. Pour ce faire, nous utilisons deux variables :

  • location: Enregistrez l'endroit où l'utilisateur se déplace.
  • activities: Un tableau de chaînes de caractères contenant les activités que l'utilisateur souhaite effectuer.

Configuration des variables d'activités dans dify

Voici comment créer un flux pour extraire les deux variables :

Le double flux d'extraction de paramètres dans dify

Dans cet exemple, nous commençons par un bloc d'extraction de variables pour extraire à la fois le location et la liste des activities.

La configuration du double extracteur de paramètres

Nous utilisons ensuite des blocs IF/ELSE pour vérifier si chacun de ces paramètres a été extrait et mettre à jour les variables si c'est le cas. Contrairement à nos exemples précédents, cela permet à l'utilisateur de mettre à jour les valeurs.

À la fin de l'extraction des valeurs et de l'affectation des variables, nous ajoutons un autre bloc IF/ELSE pour vérifier s'il y a des valeurs manquantes. S'il manque quelque chose, nous demandons explicitement à l'utilisateur de le fournir.

Demander les valeurs lorsque l'utilisateur ne les a pas fournies.

Si location et activities sont tous deux définis, nous utilisons le bloc Code que nous avons créé précédemment pour obtenir le temps qu'il fait à l'endroit donné. Enfin, nous fournissons la météo, le lieu et les activités à un bloc LLM pour planifier la journée de l'utilisateur.

La configuration LLM de l'agent de voyage.

Le bloc LLM est configuré avec une invite système qui indique au modèle ce qu'il doit faire. Le lieu, les activités et le temps y sont intégrés. Voici la dernière partie du flux :

Le flux final

Voici un exemple d'interaction avec l'agent :

Exemple d'interaction avec l'agent de voyage dans la ville

Nous voyons dans la réponse que, grâce au nœud Code, l'agent peut fournir la météo à l'utilisateur et en tenir compte lors de la planification des activités.

En raison de la manière dont le flux a été mis en place, si l'utilisateur fournit l'information immédiatement dans le premier message, l'agent fournira directement un plan pour la journée.

Un autre exemple d'interaction où l'utilisateur fournit directement l'information.

Définition d'un message d'accueil personnalisé

Vous remarquerez peut-être que l'agent a commencé par accueillir l'utilisateur avec un message :

Message d'accueil

Pour ce faire, nous devons activer la fonction d'ouverture de la conversation.

Accéder aux fonctions de Dify

Activation du message d'accueil sur dif

Outils Dify

Dans ce tutoriel, nous avons appris les éléments fondamentaux de Dify. Un aspect que nous n'avons pas abordé est celui des outils.

Dans Dify, les outils sont des extensions puissantes qui permettent à vos agents IA d'interagir avec le monde extérieur au-delà des limites d'un modèle de langage. Bien qu'un LLM puisse raisonner et générer des réponses sur la base de ses données de formation et du contexte de l'invite, il n'a pas d'accès en temps réel à des données en direct ou à des services externes.

Les outils résolvent ce problème en permettant à votre agent de faire des appels API, d'interroger des bases de données, d'effectuer des calculs, d'extraire des documents, et plus encore, agissant essentiellement comme un pont entre votre IA et les sources d'information externes.

Accéder aux outils Dify

Vous pouvez configurer les outils dans Dify via l'interface visuelle de la plateforme en spécifiant le type d'outil (comme les requêtes HTTP, les interprètes de code ou les plugins tiers), le schéma d'entrée/sortie et toute exigence d'authentification. Une fois configurés, ces outils peuvent être utilisés dans votre flux d'agents via des blocs d'outils, qui vous permettent de transmettre des données vers et depuis l'outil et d'introduire les résultats dans des nœuds LLM ou d'autres blocs logiques.

Ajouter un bloc d'outils

Vos agents deviennent ainsi non seulement plus intelligents, mais aussi orientés vers l'action, capables de fournir des réponses actualisées et contextuelles en interagissant avec des services du monde réel.

Dans notre exemple, nous avons utilisé un bloc de code pour envoyer une requête à l'API météo. Une autre solution aurait consisté à créer un outil et à le fournir au mécanisme d'apprentissage tout au long de la vie.

Conclusion

Dans ce tutoriel, nous avons exploré certains des éléments fondamentaux dont vous aurez besoin pour commencer à travailler avec Dify. Cependant, Dify offre de nombreuses autres fonctionnalités et capacités à découvrir.

Pour consolider votre compréhension, un bon exercice consisterait à améliorer l'agent de voyage que nous avons créé. Envisagez d'ajouter des fonctions telles que la recherche sur Internet pour trouver des activités locales en ligne, ce qui peut enrichir la fonctionnalité de l'agent et fournir des suggestions plus dynamiques.

Si vous êtes intéressé par les constructeurs d'agents d'IA comme Dify, je vous recommande de consulter nos autres tutoriels pour approfondir vos connaissances :


François Aubry's photo
Author
François Aubry
LinkedIn
Ingénieur full-stack et fondateur de CheapGPT. L'enseignement a toujours été ma passion. Dès mes premiers jours d'études, j'ai cherché avec enthousiasme des occasions de donner des cours particuliers et d'aider d'autres étudiants. Cette passion m'a amenée à poursuivre un doctorat, où j'ai également été assistante d'enseignement pour soutenir mes efforts académiques. Au cours de ces années, j'ai trouvé un immense épanouissement dans le cadre d'une classe traditionnelle, en favorisant les liens et en facilitant l'apprentissage. Cependant, avec l'avènement des plateformes d'apprentissage en ligne, j'ai reconnu le potentiel de transformation de l'éducation numérique. En fait, j'ai participé activement au développement d'une telle plateforme dans notre université. Je suis profondément engagée dans l'intégration des principes d'enseignement traditionnels avec des méthodologies numériques innovantes. Ma passion est de créer des cours qui sont non seulement attrayants et instructifs, mais aussi accessibles aux apprenants à l'ère du numérique.
Sujets

Apprenez l'IA avec ces cours !

Cursus

AI Fundamentals

0 min
Discover the fundamentals of AI, dive into models like ChatGPT, and decode generative AI secrets to navigate the dynamic AI landscape.
Afficher les détailsRight Arrow
Commencer le cours
Voir plusRight Arrow
Apparenté

blog

Types d'agents d'intelligence artificielle : Comprendre leurs rôles, leurs structures et leurs applications

Découvrez les principaux types d'agents d'intelligence artificielle, comment ils interagissent avec les environnements et comment ils sont utilisés dans les différents secteurs d'activité. Comprendre les agents réflexes simples, les agents basés sur un modèle, les agents basés sur un but, les agents basés sur l'utilité, les agents d'apprentissage, etc.
Vinod Chugani's photo

Vinod Chugani

14 min

blog

Architecture de l'entrepôt de données : Tendances, outils et techniques

Apprenez l'essentiel de l'architecture d'un entrepôt de données, des composants clés aux meilleures pratiques, pour construire un système de données évolutif et efficace !
Kurtis Pykes 's photo

Kurtis Pykes

15 min

blog

Les 50 meilleures questions et réponses d'entretien sur AWS pour 2025

Un guide complet pour explorer les questions d'entretien AWS de base, intermédiaires et avancées, ainsi que des questions basées sur des situations réelles.
Zoumana Keita 's photo

Zoumana Keita

15 min

blog

Célébration de Saghar Hazinyar : Une boursière de DataCamp Donates et une diplômée de Code to Inspire

Découvrez le parcours inspirant de Saghar Hazinyar, diplômée de Code to Inspire, qui a surmonté les défis en Afghanistan et s'est épanouie grâce à une bourse de DataCamp Donates.
Fereshteh Forough's photo

Fereshteh Forough

4 min

blog

2022-2023 Rapport annuel DataCamp Classrooms

À l'aube de la nouvelle année scolaire, DataCamp Classrooms est plus motivé que jamais pour démocratiser l'apprentissage des données, avec plus de 7 650 nouveaux Classrooms ajoutés au cours des 12 derniers mois.
Nathaniel Taylor-Leach's photo

Nathaniel Taylor-Leach

8 min

blog

Q2 2023 DataCamp Donates Digest

DataCamp Donates a offert plus de 20k bourses d'études à nos partenaires à but non lucratif au deuxième trimestre 2023. Découvrez comment des apprenants défavorisés et assidus ont transformé ces opportunités en réussites professionnelles qui ont changé leur vie.
Nathaniel Taylor-Leach's photo

Nathaniel Taylor-Leach

Voir plusVoir plus