Tutoriel publié le 26/08/2024. Les outils et leurs interfaces peuvent avoir évolué. Cet exemple pédagogique ne constitue pas une réalisation client ni une garantie de résultat.
Introduction :
Dans un monde en constante évolution, l'automatisation et l'intelligence artificielle jouent un rôle de plus en plus important dans la création d'expériences utilisateurs intuitives et engageantes. Les chatbots sont devenus des outils essentiels dans ce contexte, offrant des solutions efficaces pour améliorer l'interaction entre les entreprises et leurs clients. Ce tutoriel explore en détail la maintenance d'un chatbot en utilisant les plateformes VoiceFlow et Flowise. VoiceFlow permet la création d'un flux conversationnel intuitif et personnalisable, tandis que Flowise, basé sur la bibliothèque LangChain, apporte des fonctionnalités avancées de traitement de langage naturel pour des réponses plus précises et contextuelles. En suivant ce guide, vous apprendrez comment intégrer ces deux outils pour créer un chatbot performant capable de comprendre les demandes des utilisateurs, d'interagir avec eux et de fournir des réponses précises en boucle et même partager avec l’utilisateur des images.Technologies Utilisées
Dans ce tutoriel, Nous utilisons : VoiceFlow pour créer un flux conversationnel personnalisé
Flowise (basé sur LangChain) pour des fonctionnalités avancées de traitement de langage naturel
Le tout intégré via une API pour créer un chatbot performant et interactif.
Comment ça marche ?
Partie accueil
Dans cette partie, on se trouve face au premier bloc (bloc Welcome), composé de deux sous-blocs : Text pour accueillir l’utilisateur et Caption.
Sous-bloc Text :
Pour ce faire dans la barre des choix des étapes on choisit “Talk” puis “Text”
Nous avons ajouté des phrases variantes que nous allons utiliser pour accueil l’utilisateur , l’une de ces phrases sera la première phrase que l’utilisateur va voir.
Sous-bloc Caption :
Pour ce faire dans la barre des choix des étapes on choisit “Listen” puis “Capture” , ensuite nous allons créer une variable appelé : input , qui aura pour rôle de récupérer le message qui sera envoyé par l’utilisateur
Bloc des conditions :
Dans cet exemple nous allons voir que 3 type de conditions
Condition 1 :
La condition 1 est tout simplement une condition de type if composé de sous-conditions :
IF : La variable input contient le terme “image”
AND : La variable input contient le terme “tableau de bord ”
Dès que les deux conditions suivantes sont respecté image apparait , par la suite l’utilisateur est renvoyé vers le bloc d’accueil (bloc Welcome )
Condition 2 :
Même chose que condition 1
Condition 3 :
1-Cette partie sera actionnée dès que la variable input contient quelque chose
2-Ensuite pour utiliser un bloc call API nous allons vers barre étape Dev
3-Par la suite nous allons passer à Flowise (hébergé sur Render) ou nous allons demander
Détails sur Flowise :
Cette image représente le flux de données d'une chaîne de questions-réponses avec récupération conversationnelle (Conversational Retrieval QA Chain) en utilisant les composants LangChain. Voici une explication détaillée de chaque étape :
1. Pdf File (Fichier PDF)
- But : Ce composant est responsable de la lecture et de la division d'un fichier PDF en morceaux de texte qui peuvent être utilisés pour un traitement ultérieur.
- Entrées :
Pdf File: Le chemin vers le fichier PDF téléchargé (par exemple,Maintenance SY412-inks.pdf).Text Splitter: La méthode utilisée pour diviser le contenu PDF en morceaux.Usage: Définit comment les documents sont divisés (par exemple, "Un document par page").
- Sorties :
Document: Les morceaux de texte divisés.
- But : Divise les données textuelles en morceaux plus petits pour une récupération efficace.
- Entrées :
Chunk Size: La taille maximale de chaque morceau de texte (par exemple, 1000 caractères).Chunk Overlap: Le nombre de caractères qui se chevauchent entre les morceaux consécutifs.
- Sorties :
RecursiveCharacterTextSplitter: Divise et produit les morceaux de texte.
- Utilisation :
- Ce diviseur est connecté au composant
Pdf Filepour traiter le contenu PDF.
- Ce diviseur est connecté au composant
- But : Génère des vecteurs d'embarquement pour chaque morceau de texte.
- Entrées :
Connect Credential: Les identifiants d'API pour accéder aux services OpenAI.Embeddings: Le modèle OpenAI pour générer des embarquements (par exemple,text-embedding-ada-002).
- Sorties :
OpenAIEmbeddings: Les vecteurs d'embarquement générés.
- But : Stocke les embarquements générés pour un accès rapide lors du processus de questions-réponses.
- Entrées :
Document: Les morceaux de texte.Embeddings: Les embarquements générés par le composantOpenAI Embeddings.Top K: Le nombre de morceaux similaires à renvoyer pour chaque requête (par exemple, 4).
- Sorties :
Memory Retriever: Un récupérateur qui trouve les documents pertinents en fonction des embarquements de requête.
- But : Fournit un accès au modèle de langage OpenAI pour la conversation.
- Entrées :
Cache: Met en cache les réponses pour un accès plus rapide.Connect Credential: Les identifiants d'API pour accéder aux services OpenAI.Model Name: Le modèle à utiliser (par exemple,gpt-3.5-turbo).Temperature: Contrôle la créativité des réponses du modèle.
- Sorties :
ChatOpenAI: Une instance du modèle de conversation.
- But : Fournit une solution de questions-réponses avec récupération conversationnelle de bout en bout.
- Entrées :
Chat Model: L'instance du modèle de conversation (à partir deChatOpenAI).Retriever: L'instance de récupérateur (à partir deIn-Memory Vector Store).Return Source Documents: Indique si les documents sources doivent être inclus dans les réponses.
- Sorties :
ConversationalRetrievalQAChain: La chaîne de questions-réponses complète capable de répondre aux question
4-Récupérer la syntaxe API utilisation de chatbot que nous avons créer sur Flowise
5- Connecter Flowise à VoiceFlow
Nous allons copier-coller les éléments de la syntaxe API de Flowise sur le bloc API de Voiceflow
Par la suite nous allons tester si le call API a bien bel est bien était fait sur Voiceflow en cliquant sur “ Send Request”
Résultat :
On reçoit un résultat sous forme de Json
L’objectif est de récupérer juste ce que contient la valeur “text”
Nous allons donc créer une variable appelé “Answer” qui va recevoir cette valeur via le champs “Capture Response “ du blow API
5- Afficher ce que contient la variable Answer sur un bloc text , puis le connecter au bloc d’accueil pour créer un effet de questions réponse sous forme de boucle
. 


