1. Les robots conversationnels
    1. Compréhension du langage
      1. Constuire un DT
    2. Graphe de conversation
      1. Les liens
      2. Les noeuds
        1. Sorties de nœud
        2. Le nœud de message
        3. Le nœud de fin
        4. Le nœud de question oui / non
        5. Le nœud de question à choix
        6. Le nœud de question ouverte
        7. Le nœud de question à intentions
        8. Le nœud d'embranchement
        9. Le nœud d'opérations
        10. Le nœud de requête externe
        11. Le nœud d'authentification
        12. Le nœud de sélection par liste
        13. Le nœud de live chat
        14. Le nœud de notation
        15. Le nœud de droit
        16. Le nœud de consultation d'agenda
        17. Le nœud d'enregistrement dans un agenda
      3. Les sous-graphes
        1. Les sauts par navigation
        2. Les sauts par intention
        3. Les sauts par détection de langue
      4. Autres
        1. Les types de données
        2. Les variables d'enregistrement
        3. Les valeurs fixes
        4. Les valeurs spéciales
        5. Les phrases génériques
    3. Versionnage des robots et déploiement
  2. Plateforme web
    1. Prérequis
    2. Plan de la plateforme
    3. Votre compte administrateur
      1. Authentification
      2. Page de profil
        1. Informations du compte
        2. Gestion des comptes opérateurs
      3. Gestion des robots
      4. Gestion des ressources
        1. Documents
        2. Agenda Externes
      5. Live chat
        1. Gestions des disponibilités
        2. Traitement des demandes
        3. Supervision
      6. Historique des opérations
    4. Configurer un robot conversationnel
      1. Etat et Déploiement
      2. Les versions
        1. Gestion des versions
        2. Barre des versions
      3. Les connecteurs
        1. Widget intégrable
        2. Facebook
      4. Le graphe de conversation
        1. Informations générales sur les graphes
        2. Gestion des sous-graphes
        3. Gestion des nœuds
        4. Gestion des liens entre les nœuds
        5. Les phrases à morceaux
        6. Gestion des variables
        7. Les définitions
        8. Les modèles de carrousel
        9. Les agendas
        10. Le système de droits
        11. Validité du graphe
        12. Rechercher dans le graphe
        13. Commentaires
      5. Apprentissage
        1. Généralités sur l'apprentissage
          1. Choix du modèle
          2. Gestion des intentions
          3. Gestion des entités
          4. Seuils de confiance
          5. Confirmation de saut par intention
        2. Modèle stochastique
          1. Interface de gestion des phrases
          2. Edition de phrases
        3. Modèle déterministe
          1. Interface de gestion du DT
          2. Configuration des noeuds
      6. Gestion des langues
      7. Tester une version
      8. Métriques
        1. Résumé
        2. Graphe d'utilisation
        3. Histogrammes
        4. Compréhension
        5. Conversations
      9. Optimisation
        1. Projets d'optimisation
        2. Rapports d'optimisation
        3. Automatisation

1.Les robots conversationnels #

Un robot conversationnel, communément appelé chatbot, est un programme informatique qui a pour objectif de converser avec un humain afin de répondre à ses questions, de l’orienter et de l’accompagner dans ses démarches.

Son comportement doit s’approcher le plus possible de celui d’un humain. Il doit être capable de comprendre les intentions de son interlocuteur et s’adapter à des formulations verbales variantes avec potentiellement des fautes d’orthographe ou de grammaire.

La paramétrisation des robots conversationnels Robo Fabrica comporte de nombreux aspects que nous allons aborder dans ce chapitre.

1.1.Compréhension du langage #

Pour pouvoir comprendre le langage, un chatbot doit être entraîné. Plusieurs méthodes sont possibles et la plateforme Robo Fabrica en propose deux :

La méthode stochastique se base sur un ensemble de phrases que l’on présente au chatbot. Ce dernier les utilise lorsqu’un interlocuteur s’adresse à lui afin de retrouver l’intention la plus probable de l’utilisateur : à quoi correspond sa demande ? La puissance de cette méthode tiens du fait qu’elle peut s’alimenter au fur et à mesure des intéractions avec les utilisateurs.

Dans le cas où aucune phrase d’entraînement n’est disponible, Robo Fabrica met à disposition sa technologie des Deterministic Trees. Ces derniers permettent de configurer des termes métiers afin qu’un chatbot soit en mesure de proposer de bonnes performances de compréhension sans l’aide de phrases d’entraînement. Cette technologie vient donc compléter la méthode stochastique au lancement du chatbot. Cependant, au fur et à mesure des intéractions du chatbots avec les utilisateurs, des phrases pourront être récoltées afin de construire un jeu d’entraînement permettant de maximiser les performances de compréhension du chatbot.

1.1.1.Constuire un DT #

Le Deterministic Tree (DT) est un outil permettant de configurer les connaissances en langage métier d’un chatbot Robo Fabrica. Il est pertinent d’utiliser le DT lorsque l’on ne dispose pas d’un ensemble de phrases utilisateurs collectées lors d’interactions dans un environnement similaire à celui dans lequel le chatbot sera déployé.

Fonctionnement global

L’idée derrière le DT est d’utiliser une méthode basique de compréhension du langage, les mots-clefs, et d’y ajouter des priorités.

Composition

Un DT est un graph composé d’une racine, de noeuds et de feuilles.

  • La racine a un simple rôle structurel : elle permet d’identifier la base du DT.
  • Les noeuds et les feuilles contiennent des mots-clefs, aussi appelés formulations. Lors de la recherche d’une intention dans une phrase, cette dernière est décomposée en mots qui seront ensuite comparés aux mots-clefs contenus dans les noeuds/feuilles du DT.
  • Les feuilles contiennent des intentions. Les intentions sont ce que l’on cherche à extraire d’une phrase utilisateur : Prendre un rdv, Obtenir des informations, etc…

On peut aussi définir des branches. Une branche est une succession ordonnée de noeuds reliés, qui part de la racine.

Exemple de DT

Nous utilisons cet exemple dans les sections suivantes afin d’aider à la compréhension des concepts du DT.

Le graphe

On observe une racine, 2 noeuds, 4 feuilles et 4 branches.

Les noeuds n’ont qu’une seule formulation : celle qui est affichée comme label.

La feuille rdv a comme intention « Rdv pour un passeport ».

La feuille dossier sous le noeud passeport a comme intention « Constitution d’un dossier pour un passeport ».

La feuille inscription a comme intention « Inscription scolaire ».

La feuille dossier sous le noeud scolaire a comme intention « Constitution d’un dossier pour une inscription scolaire ».

Comportement

Cette section décrit schématiquement le comportement du DT lors de la recherche d’une intention dans une phrase.

Phase 1 : recherche des noeuds activés

La phrase est normalisée et découpée en mots. Les mots-clefs qui composent tous les éléments du DT sont recherchés dans la phrase découpée. Chaque élément du DT contenant au moins un mot de la phrase sera alors marqué comme activé. Cela nous donne une liste de noeuds activés par la phrase.

Phase 2 : Recherche de correspondances parfaites

Une seule correspondance parfaite trouvée

On recherche une branche composée de noeuds qui sont tous activés. Ci-dessous un exemple avec la phrase:

j’ai besoin d’un rdv pour renouveler un passeport

Les noeuds passeport et rdv sont activés. Ils forment une branche complète du DT. C’est donc une correspondance parfaite. L’intention qui se trouve dans la feuille de cette branche est la correspondance recherchée. Dans ce cas, le chatbot sera sûr de lui et déroulera le scénario de conversation correspondant à l’intention « Rdv pour un passeport ».

Multiples correspondances parfaites trouvées

Il est possible qu’une phrase active plusieurs branches complètes. Ci-dessous un exemple avec la phrase

maintenant que j’ai terminé mon inscription scolaire, j’ai besoin d’un rdv pour renouveler un passeport

Dans ce cas, le chatbot ne peut pas être certain de l’intention à sélectionner car il est en présence de deux correspondances parfaites :

  • Rdv pour un passeport
  • Inscription scolaire

Le chatbot n’a donc pas d’autre choix que de faire des suggestions. C’est alors à l’utilisateur de sélectionner l’intention correspondante.

Phase 3 : Recherche de correspondances partielles

Si le chatbot ne trouve pas de correspondances parfaites alors la recherche de correspondances partielles s’active. On recherche des branches incomplètes. Chaque branche composée d’au moins 1 noeud actif se voit attribuée un score. Ce score est calculé en fonction des éléments activés ainsi que de leur position dans le DT.

Plus un élément activé est proche de la racine, plus son impact sur le score est important.

C’est ainsi que sont modélisées les priorités entre les mots-clefs. Ci-dessous un exemple avec la phrase :

je veux un passeport

On remarque que seul le noeud passeport est activé. Ce noeud active partiellement deux branches. Le chatbot n’est alors pas sur de lui, il fera donc les suggestions suivantes :

  • Rdv pour un passeport
  • Constitution d’un dossier pour un passeport

Les intentions liées au thème “scolaire“ ne seront pas suggérées car aucune branche contenant ces intentions n’est partiellement activée.

Ci-dessous un second exemple avec la phrase :

constitution d’un dossier

Encore une fois, deux branches sont partiellement activées. Le chatbot ne peut pas être certain du résultat. Il suggère alors les deux intentions correspondant à ces deux branches:

  • Constitution d’un dossier pour un passeport

  • Constitution d’un dossier pour une inscription scolaire

Ci-dessous un troisième exemple avec la phrase :

inscription pour un passeport

Dans cet exemple, 3 branches sont partiellement activées. Ce sont les branches menant aux intentions:

  • Obtenir un rdv pour un passeport

  • Constitution d’un dossier pour un passeport

  • Inscription scolaire

Cependant, on peut voir que l’élément inscription, bien qu’activé, a une priorité moins importante que l’élément passeport à cause de sa distance par rapport à la racine.

Passeport est à une distance de 1.

Inscription est à une distance de 2.

Le chatbot prend cela en compte et ne suggère alors que les deux intentions des branches partielles les plus prioritaires :

  • Obtenir un rdv pour un passeport

  • Constitution d’un dossier pour un passeport

On voit que ce mécanisme de priorité permet de retirer les suggestions inutiles qui auraient été suggérées par des modèles de compréhension du langage basés sur des mots-clefs sans priorités.

Intentions par défauts

Une intention par défaut est une intention configurée dans un noeud et non dans une feuille.

On peut utiliser cela pour définir une intention globale qui sera complétée par des intentions plus spécifiques. Exemple :

  • Créer une entreprise
    • Créer une entreprise en étant mineur
    • Créer une entreprise en étant majeur

L’intention globale donne des informations globales à l’utilisateur et peut éventuellement le rediriger vers les intentions qui répondent à des demandes plus spécifiques. Une intention globale ne peut être activée que dans le cas où aucune intention n’a été trouvée de façon certaine et il n’y a qu’une seule intention globale de trouvée. La branche partielle doit être complètement activée jusqu’au noeud contenant l’intention globale afin de valider la détection de l’intention.

Quand utiliser une intention par défaut ou une entité ?

Dans l’exemple Créer une entreprise – en étant mineur – en étant majeur, on peut imaginer remplacer les 3 intentions par une intention paramétrée par les formulations majeur/mineur. Comment choisir le mécanisme de conversation ? Et bien si on souhaite apporter une réponse globale à la question ‘Créer une entreprise’ il faut absolument passer par l’intention par défaut.

Notes:

Pluriels

Les mots-clefs / formulations ne doivent pas être au pluriel.

Groupes de mots

Si un mot-clef est présent dans plusieurs éléments du DT alors tous les mots-clés de tous ces éléments seront considérés comme dans le même groupe de mots.

Choisir la priorité des mots

Prioriser les éléments les moins abstraits/généraux : scolaire > rdv > obtenir

1.2.Graphe de conversation #

La formalisation du dialogue avec un robot conversationnel se fait grâce à un graphe de conversation.

Un graphe de conversation permet de représenter les étapes de la conversation ainsi que l’ordre dans lequel elles doivent s’effectuer. Il est fragmenté en sous-graphes qui symbolisent chacun une thématique de la conversation. Ces sous-graphes sont à leur tour composés de nœuds, qui peuvent être de différents types, mais dans la plupart des cas ils servent à poser des questions et extraire les informations des messages de l’utilisateur.

Schéma : exemple de graphe de conversation

 

1.2.1.Les liens #

La manière la plus simple de représenter un déplacement dans le graphe est en créant un lien orienté entre des nœuds. On peut aussi parler de lien de parenté, qui relie un nœud parent à un de ses nœuds enfants.

Un lien représente alors l’ordre dans lequel on va parcourir les nœuds lors d’une discussion: les nœuds enfants succèdent à leur parent.

Lorsqu’un nœud parent a plusieurs enfants, on déterminera lequel lui succédera en respectant une logique et des mécaniques propres à son type de nœud. Pour plus d’informations sur les règles liées à chaque type de nœud, veuillez consulter la section concernant les nœuds.

1.2.2.Les noeuds #

Le principal élément qui compose un graphe est le nœud. Les nœuds peuvent être reliés entre eux par des liens de parenté.

Il existe différents types de nœuds ayant tous leur rôle dans la conversation et leur manière d’être configuré. La manière la plus commune de paramétrer un nœud est de choisir les phrases que le bot va écrire dans la conversation.

Pour plus d’informations sur les différents types de nœuds et sur leur configuration, veuillez vous référer aux sections correspondantes.

1.2.2.1.Sorties de nœud #

Une partie importante du paramétrage des sorties consiste à paramétrer le comportement que doit avoir le nœud lorsqu’une sortie est empruntée.

Le choix de la sortie empruntée dépend le plus souvent de la réponse de l’utilisateur et de son interprétation.

Quant à la phrase écrite par le bot lorsqu’il emprunte une sortie, il y a jusqu’à trois façon de la configurer:

1.2.2.2.Le nœud de message #

Ce nœud a un comportement très simple : il écrit une succession de messages à l’utilisateur.

Il y a deux types de messages:

  • Les messages textuels, définis par une phrase
    • Chaque message textuel sera affiché dans une bulle différente par le bot.
  • Les carrousels de saut
    • Cliquer sur une carte du carrousel permet de faire un saut dans le graphe.

Il n’attend pas de réponse de l’utilisateur.

Il n’a qu’une seule sortie.

1.2.2.3.Le nœud de fin #

Le nœud de fin a un rôle particulier dans la construction du graphe, il marque la fin d’une conversation, peut importe dans quel sous-graphe il est placé.

Lorsque l’on rencontre un nœud de fin lors de l’exécution d’une conversation, on recommence la conversation depuis le début, tout en remettant à zéro la mémoire. A noter que le point de départ de la nouvelle conversation est le même que celui de la conversation originale.

Ce nœud reste optionnel pour la construction du graphe. Typiquement, on peut choisir de le remplacer par un lien qui retournerait à une étape antérieure de la conversation.

Il est possible de configurer une phrase que le bot va écrire lorsqu’il emprunte ce nœud.

Ce nœud n’a pas de sortie.

1.2.2.4.Le nœud de question oui / non #

Ce nœud permet de poser une question fermée à l’utilisateur. C’est à dire que l’on attend une réponse positive ou négative.

Le résultat peut être enregistré dans une variable de type « vrai ou faux ».

Ce nœud peut avoir deux sorties, qui correspondront aux réponses positives et négatives, ou une sortie unique représentant ces deux éventualités.
De plus, il est possible d’activer une sortie à prendre lorsque l’on ne comprend pas la réponse de l’utilisateur. Si cette sortie n’est pas activée, le bot répète simplement la question, après avoir écrit une phrase générique d’échec de sélection.

1.2.2.5.Le nœud de question à choix #

Ce nœud permet de proposer un ensemble de choix à l’utilisateur. Il pose une question et attend une réponse correspondant à l’un de ses choix.

Le choix peut être enregistré dans une variable de type « nombre entier ». Ce nombre correspond au numéro du choix.

Il peut y avoir autant de sorties que de choix possibles, ou une sortie unique représentant tous les choix.
De plus, il est possible d’activer une sortie à prendre lorsque l’utilisateur n’arrive pas à sélectionner un choix. Si cette sortie n’est pas activée, le bot répète simplement la question, après avoir écrit une phrase générique de non compréhension.

 

1.2.2.6.Le nœud de question ouverte #

Ce nœud a pour objectif d’obtenir une information précise de l’utilisateur. Pour cela il va poser une question, et essayer d’extraire l’information recherchée dans la réponse.

Il existe différentes méthodes d’extraction de l’information :

  • Intégrale : pour prendre la réponse en entier, sans contrôler le contenu. Cela est utile pour des réponses faiblement typées, comme les noms de famille.
    • On peut préciser la taille maximale que l’on veut extraire.
  • Par rôle d’entité : pour rechercher une entité dans la réponse
    • Il faut avoir créé au préalable un jeu d’entraînement suffisant pour l’entité en question.
    • On peut sauvegarder à la fois le nom du groupe de formulation détecté, ainsi que, optionnellement, la partie du texte ayant servie à cette détection.
  • Par expression régulière : pour rechercher une expression régulière dans la réponse, selon la syntaxe Python.
  • Nombre entier
  • Nombre à virgule
  • Date : extraction de date,
  • Heure : extraction d’heure.

A noter que pour les méthodes Date et Heure les formats acceptés sont variés. On peut ainsi utiliser le langage naturel (« dans deux jours », « le 25 mars ») mais aussi des formats classiques (dd/mm/yyy).

L’information extraite est enregistrée dans une variable avec un type adapté.

Ce nœud dispose d’une option supplémentaire: l’extraction intelligente. Lorsqu’elle est activée, cela permet de ne pas poser les questions auxquelles on a déjà trouvé la réponse dans la question précédente, et ainsi gagner en fluidité. On peut également forcer le nœud à n’utiliser que l’extraction intelligente. Cela permet de personnaliser le comportement du chatbot en cas d’échec de l’extraction intelligente.

Ce nœud dispose de plusieurs sorties possibles:

  • une sortie standard
  • une sortie d’erreur, activable, qui est empruntée lorsque l’utilisateur bloque à une question.
    • Il est possible de configurer le compteur maximum de nombre de fois où l’on peut répéter une question.
    • Cette sortie n’est pas disponible si le mode « extraction intelligente uniquement » est activé.
  • une autre sortie d’erreur, liée à un échec d’extraction intelligente.
    • Seulement possible si le mode « extraction intelligente uniquement » est activé.

1.2.2.7.Le nœud de question à intentions #

Ce nœud a pour objectif de déterminer l’intention de l’utilisateur. Il va poser une question à l’utilisateur et tenter d’extraire l’intention dans sa réponse.

On peut limiter la recherche à un ensemble réduit d’intentions détectables.

Il faut avoir créé au préalable un jeu d’entraînement suffisant pour ces intentions afin d’obtenir des résultats satisfaisants.

On peut activer un mode autorisant les suggestions. Dans ce cas, le robot va proposer à l’utilisateur un certain nombre de suggestions, parmi les intentions qui correspondent le mieux. Il est possible de configurer le nombre maximal de suggestions, ainsi que la manière dont le robot va les proposer à l’utilisateur.

On peut aussi activer les suggestions par familles d’intentions. Cela est intéressant lorsque l’on veut proposer plus de suggestions que le nombre maximal. Dans le cas où une famille de suggestion serait sélectionnée par l’utilisateur, il y aurait une seconde étape de suggestions avec des intentions de cette famille.

Les suggestions peuvent être rendues dynamiques en activant ce mode. L’utilisateur devra alors commencer à écrire du texte et sélectionner à la main une des suggestions proposées, qui seront mises à jour en temps réel. Il ne peut plus envoyer de messages, il est obligé de sélectionner une des propositions.

L’intention de l’utilisateur peut être sauvegardée dans une variable de type « intention », et la réponse de l’utilisateur peut aussi être sauvegardée dans une variable de type « chaîne de caractères ».

Ce nœud dispose d’un certains nombres de sorties correspondants à chaque intentions possibles. Il faut rajouter à cela une sortie supplémentaire, activable, pour gérer le cas où l’on ne comprend pas la réponse de l’utilisateur. Si le mode suggestion est activé, deux sorties supplémentaires sont disponibles pour gérer les cas où l’utilisateur décide qu’aucune suggestion ne convient, ou ne parvient pas à choisir une des suggestions proposées. Enfin, une dernière sortie activable correspond au cas où une intention est refusée par manque de droit.

1.2.2.8.Le nœud d'embranchement #

Ce nœud offre un moyen simple de créer des ramifications dans le graphe.

Le robot va choisir à partir d’une liste de conditions dans quelle branche aller. Il parcourt dans l’ordre toutes les conditions et s’arrête à la première qui est vérifiée.

Les conditions sont représentées par des opérations de comparaison entre deux valeurs. Ces valeurs peuvent être des valeurs fixes, des variables, ou des valeurs spéciales.

Les différents types d’opérations de comparaisons entre les deux valeurs arbitraires V1 et V2 sont :

  • Egalité : Vrai si V1 est égal à V2
  • Inégalité : Vrai si V1 est différent de V2
  • Vide: Vrai si V1 est une variable vide
    • Pour une variable de liste, cela vérifie notamment que la liste est de longueur nulle.

Ce nœud dispose d’une sortie pour chaque condition, plus une sortie pour le cas où aucune des conditions n’a été vérifiée.

1.2.2.9.Le nœud d'opérations #

Ce nœud a pour fonction d’effectuer une succession d’opérations de calcul et d’affectation.

Chaque opération attend une ou deux valeurs en argument, et va enregistrer son résultat dans une variable. Ces valeurs peuvent être soit des variables soit des valeurs fixes. Les opérations s’effectuent dans l’ordre de la configuration.

Voici l’ensemble des opérations disponibles, avec O1 et O2 les deux valeurs et R la variable pour enregistrer le résultat.

  • Affectation (pas d’opération): R = O1
  • Addition: R = O1 + O2
  • Ajout d’un  élément O1 à une liste R
  • Vidage d’une variable R

Ce nœud n’a qu’une seule et unique sortie.

1.2.2.10.Le nœud de requête externe #

Ce nœud permet d’effectuer des requêtes HTTP de type POST ou GET vers des SI externes.

On peut configurer ses paramètres d’entrées (header et body) et de retours. On peut sauvegarder les paramètres de retour dans des variables.

Il peut être synchrone lorsque le traitement sur le SI est aussi synchrone, ou asynchrone sinon.

Il dispose de deux sorties, pour les cas où la requête s’est bien déroulée ou a échoué.

On considère qu’une requête échoue dans les cas suivants :

  • Il y a eu une erreur lors de la communication vers le SI externe
  • Pour les requêtes synchrones :
    • un paramètre de retour est manquant
    • la requête a timeout (5 secondes)

Il est aussi possible d’effectuer des requêtes sécurisées HTTPS si l’on précise l’url complète avec le protocole.

Dans le cas de requête synchrone, il est possible de préciser si l’on rajoute dans le body de la requête les identifiants suivants :

  • overall_id : identifie le compte administrateur de robo fabrica
  • graph_id : identifie le robot
  • api_spec_user_id : identifie l’utilisateur final, qui converse avec le robot

Note: mettre une variable d’intention dans le body ou le header de la requête envoie son identifiant interne.

1.2.2.11.Le nœud d'authentification #

Ce nœud permet de vérifier si l’utilisateur est authentifié auprès d’un SI externe, ce qui est utile pour restreindre l’accès à une partie du graphe.

On peut configurer sa réponse pour l’utilisateur lorsque ce dernier lui envoie un message alors qu’il est occupé à vérifier l’authentification.

Il possède deux sorties correspondant aux cas où l’utilisateur est authentifié ou non.

Dans sa configuration, on est amené à choisir un mode d’authentification. Pour le moment, il existe deux modes possibles:

  • Par appel d’API
  • Avec un JWT (Json Web Token)

Si on choisi le mode « Appel d’API », le robot doit être capable d’envoyer une requête d’authentification à un SI externe, dont l’url doit être spécifiée dans la configuration. Le token d’identification, fourni dans la requête, permet de vérifier la provenance de cette dernière.

Si on choisi le mode « JWT », il faut spécifier de façon globale le secret JWT dans la configuration du connecteur widget.

1.2.2.12.Le nœud de sélection par liste #

Ce nœud permet de proposer un ensemble de choix à l’utilisateur. Le robot pose une question et attend la sélection d’un des choix par l’utilisateur.

Les choix possibles peuvent provenir d’une liste à taille variable, et d’une liste de choix additionnels prédéterminés.

Il y a deux manière d’afficher les choix:

  • Mode normal: l’affichage ressemble à celui du nœud de question à choix.
  • Mode carrousel: l’affichage se présente sous la forme d’un carrousel, avec un défilement horizontal.
    • Pour pouvoir utiliser ce mode, il faut avoir configuré préalablement un modèle de carrousel.
    • Une fois le modèle choisi, on peut associer les champs du modèle de carrousel avec les champs des éléments (composites) de la liste.
    • Si l’on souhaite activer le connecteur Facebook, il faut aussi configurer le carrousel Facebook.
      • Les cartes de carrousel Facebook disposent de 3 informations: une image, un texte et un sous-texte.
      • Chacune de ces informations est optionnelle, et peut être laissée désactivée pour ne pas être affichée.

Il est possible de limiter le nombre maximum de choix à afficher.

Si un élément de la liste à taille variable est sélectionné, il peut être enregistré dans une variable ayant le même type.

Ce nœud possède une sortie unique pour tous les choix liés à des éléments de la variable de liste.  Il y a aussi autant de sorties supplémentaires que de choix additionnels possibles. Et enfin une dernière sortie liée à une sélection ratée.

1.2.2.13.Le nœud de live chat #

Ce nœud permet à l’utilisateur de créer une demande de prise en charge de la conversation par un opérateur humain. Le robot laisse la main à un opérateur qui va aider l’utilisateur jusqu’à résolution de la problématique.

Pour plus d’info sur la prise en charge des demandes, veuillez vous référer à la section correspondante.

Si l’utilisateur parle au bot lorsqu’il est mis en attente, une phrase d’attente est écrite dans le widget.

On peut configurer les résolutions possibles correspondant à une clôture de la discussion par l’opérateur.

On peut aussi configurer le délai d’attente maximal avant de faire échouer la demande de prise en charge (timeout).

Enfin, on peut choisir si l’on veut transmettre certaine données à la demande lors de l’exécution de la conversation, en choisissant des noms et des variables qui contiennent les données. Seule une de ces données peut être « primaire », elle sera affichée directement dans la liste de démandes de l’interface de Livechat.

Ce nœud possède une sortie par résolution. Il y a aussi une sortie pour gérer le cas où la demande a été rejetée, c’est à dire quand aucun opérateur n’était disponible à sa création. Et enfin, il y a une sortie pour gérer le cas où la demande a été expulsée, c’est à dire quand l’opérateur qui traitait la demande s’est déconnecté en cours de route ou qu’une erreur interne est survenue.

1.2.2.14.Le nœud de notation #

Ce nœud permet à l’utilisateur de donner une note entre 1 et 5, en répondant à une question donnée.

Il peut y avoir autant de sorties que de notes possibles (5), ou une sortie unique représentant tous les choix. Il y a aussi deux sorties pour gérer le cas où la question a été ignorée de façon explicite (en cliquant sur le bouton) ou implicite (en répondant autre chose).

NB: La valeur sauvegardée est comprise entre 0 et 4.

1.2.2.15.Le nœud de droit #

Ce nœud a pour fonction d’activer ou désactiver un sous-ensemble de droit.

Chacun des droits ne peut être présent qu’une fois dans un nœud.

Ce nœud n’a qu’une seule et unique sortie.

1.2.2.16.Le nœud de consultation d'agenda #

Ce nœud pose une question à l’utilisateur et attend qu’il sélectionne dans un agenda une date ainsi qu’un horaire.

Pour le configurer, il faut:

  • Choisir un agenda à utiliser.
  • Choisir une variable pour enregistrer la donnée de type date & heure.

Ce nœud dispose d’une sortie par défaut qui correspond à une sélection réussie d’un horaire dans l’agenda. Il y a aussi deux sorties pour gérer le cas où la question a été ignorée de façon explicite (en cliquant sur le bouton) ou implicite (en répondant autre chose). Enfin, il y a une sortie liée à une erreur qui serait survenue lors de l’accès à l’agenda (qui peut être une ressource externe de type calendrier Google).

1.2.2.17.Le nœud d'enregistrement dans un agenda #

Ce nœud enregistre dans un agenda l’utilisation d’un créneau (date + horaire).

Pour le configurer, il faut :

  • Choisir un agenda à utiliser.
  • Choisir une variable qui contiennent une donnée de type date & heure.
  • Optionnellement, choisir des données complémentaires à enregistrer dans le créneau.

Ce nœud dispose d’une sortie par défaut qui correspond à un enregistrement réussi dans l’agenda.

Il y a aussi trois sorties liées à des erreurs.

  • Erreur d’accès à l’agenda (qui peut être une ressource externe de type calendrier Google).
  • Information manquante (date & heure)
  • Créneau choisi non-disponible.

1.2.3.Les sous-graphes #

Le graphe de conversation est composé de plusieurs sous-graphes. Il doit y avoir au minimum un sous-graphe.

Chaque sous-graphe correspond à la résolution d’une thématique de la conversation.

Pour accéder à un sous-graphe lors d’une conversation il existe 3 moyens :

Un des sous-graphes est appelé le sous-graphe par défaut. Pour plus d’informations le concernant, veuillez vous référer à la section : les sauts par navigation.

1.2.3.1.Les sauts par navigation #

Un saut par navigation est un moyen de se déplacer dans le graphe, et d’accéder directement à un sous-graphe, en navigant sur une page web.

Dans la configuration d’un sous-graphe on peut activer ce type de saut. Il faut en plus associer le sous-graphe à une page web en intégrant la balise de widget correspondante dans cette page.

Un des sous-graphes est désigné comme étant le sous-graphe par défaut. C’est le sous-graphe auquel on accède lors d’une connexion via un canal de communication autre que le widget. Sa nécessité est due au fait que l’on ne puisse pas gérer les sauts par navigation sur ce genre de canal. Il doit donc toujours exister un sous-graphe par défaut.

1.2.3.2.Les sauts par intention #

Les sauts par intention permettent d’aller directement dans un sous-graphe lorsque l’on détecte l’intention qui lui est liée.

Dans la configuration d’un sous-graphe on peut activer ce type de saut et choisir quelle est l’intention générale du sous-graphe. Il est préférable que cette intention corresponde réellement à la problématique résolue par le sous-graphe.

Lors d’une conversation, s’il existe des sous-graphes qui ont activé leur saut par intention, le bot va essayer de détecter les intentions correspondantes dans les messages de l’utilisateur. Lorsque l’utilisateur annonce très clairement une de ses intentions, on procède alors au saut.

L’intention que l’on choisit pour un saut par intention peut être soit une intention customisée, créée par l’administrateur, soit une intention pré-construite, qui permet de capturer efficacement des intentions courantes.

Les intentions pré-construites disponibles sont:

  • Bonjour
  • Au revoir
  • Merci
  • Insultes
  • Que sais-tu faire?
  • Énervement

 

1.2.3.3.Les sauts par détection de langue #

Les sauts par détection de langue permettent d’aller directement dans un sous-graphe lorsque l’on détecte un changement de langue dans le texte écrit par l’utilisateur.

Dans la configuration d’un sous-graphe, on peut activer ce type de saut et choisir quelle est la langue détectée pour ce sous-graphe. Il est préférable que le contenu du sous-graphe ait été pensé en conséquence, et soit adapté à la langue choisie.

1.2.4.Autres #

1.2.4.1.Les types de données #

Les données que l’on manipule ont un type. Ce type désigne la manière d’interpréter ces données. Par exemple, un donnée de type date devra être comprise en tant que date, et ne pourra pas être utilisée à la place d’une donnée de type nombre entier ou intention.

Types simples

Il existe des types de données que l’on qualifie de simple. C’est à dire qu’ils n’ont qu’une seule dimension. Ces types sont les suivants:

  • Les chaînes de caractères (suite des caractères quelconques)
  • Les nombres entiers
  • Les nombres à virgule
  • Les booléens (vrai ou faux)
  • Les dates
  • Les heures
  • Les date & heure (une date avec une heure)
  • Les intentions (volonté de faire une action)
  • Les groupes de formulation (mots représentants une information extraite d’une phrase)

Types composites

On peut aussi créer et manipuler des types de données composites. Ces types sont composés de plusieurs champs ayant chacun un type de donnée simple.

Typiquement, les types de données composites sont utiles pour représenter un objet ayant plusieurs attributs distincts, mais que l’on a envie de garder regroupés; comme par exemple une fiche client avec le nom du client et son âge.

1.2.4.2.Les variables d'enregistrement #

Une variable d’enregistrement peut être vue comme une boîte qui peut contenir des données. Ces données peuvent être modifiées lors de l’exécution de la conversation. Cette boite a un nom qui permet de se rappeler son contenu. Elle a aussi un type, qui défini le type de données que l’on peut ranger dedans.

Une variable peut avoir un type de donnée simple ou composite. Une variable peut aussi être définie comme une liste d’éléments.

1.2.4.3.Les valeurs fixes #

Une valeur fixe est une valeur qui ne peut pas être modifiée au cours de la conversation.

On peut la considérer comme une alternative aux variables lorsque l’on connait d’emblée une valeur et qu’elle n’a pas besoin d’évoluer.

On peut aussi créer des valeurs fixes composites. Il faut dans ce cas sélectionner un type composite préalablement établi, et assigner des valeurs fixes à chacun de ses champs.

1.2.4.4.Les valeurs spéciales #

Les valeurs spéciales sont des valeurs avec une logique particulière. Elles sont suffisamment différentes des valeurs fixes ou des variables pour que l’on ait envie de les séparer.

Elle peuvent aussi être utilisées dans la configuration de certains nœuds.

Voici les valeurs spéciales existantes :

  • La date actuelle
    • Elle s’apparente à une valeur de type date
  • L’heure actuelle
    • Elle s’apparente à une valeur de type heure

1.2.4.5.Les phrases génériques #

Dans certaines situations, le bot doit écrire de manière systématique un même message à l’utilisateur. Pour éviter d’avoir à paramétrer ces messages dans plusieurs nœuds, on le fait une seule fois avec les phrases génériques.

Ces situations sont :

Pour chacune de ces situations, on peut préparer plusieurs phrases possibles. Le bot choisira alors de manière aléatoire une des phrases.

1.3.Versionnage des robots et déploiement #

Les robots conversationnels Robo Fabrica fonctionne avec un système de versions.

L’objectif des versions est de garantir que le service de conversation automatisée soit toujours disponible tout en laissant aux administrateurs la possibilité de modifier librement la configuration de l’robot sans dégrader l’expérience utilisateur.

Ainsi, pour pouvoir être utilisée, une version doit être déployée. Cependant, seulement une version avec une configuration valide peut être déployée.

A partir du moment où une version a été déployée ne serait-ce qu’une fois, elle devient verrouillée, et ne peut donc plus être modifiée à nouveau. Si vous voulez modifier une version déployée, vous devez alors créer une nouvelle version en tant que copie de celle-ci.

A noter qu’à sa création, un robot commence avec une seule version, qui ne comporte qu’un seul sous-graphe, qui est donc le sous-graphe par défaut.

Pour qu’un robot puisse être utilisable, il est nécessaire de l’activer. On ne peut activer un robot que si une version est actuellement déployée.

2.Plateforme web #

2.1.Prérequis #

Pour profiter de l’application dans les meilleures conditions possibles il est conseillé d’utiliser un des navigateurs internet suivant :

  • Google chrome, version supérieure à 80.0
  • Mozilla Firefox, version supérieure à 52.0

Le choix de l’OS ne devrait pas avoir d’importance. Cependant, nous avons pu noter quelques incohérences graphiques avec Ubuntu et OS X qui ne se manifestent pas sur les versions Windows des navigateurs internet.

2.2.Plan de la plateforme #

2.3.Votre compte administrateur #

2.3.1.Authentification #

Pour se connecter à l’interface, vous devez fournir votre email et mot de passe qui ont servi à la création de votre compte, et cliquer sur le bouton « VALIDER ».

Si vous avez oublié votre mot de passe, le lien « mot de passe oublié ?» vous permettra d’en créer un nouveau. Pour cela vous devrez renseigner votre adresse email, pour que l’on puisse vous envoyer un email contenant un lien temporaire permettant la création du nouveau mot de passe.

Si vous n’avez pas encore de compte sur l’interface de chatbot Inceptive, le lien « créer un compte » vous permet d’en créer un. Pour finaliser la procédure de création, il vous sera demandé de vérifier votre email en cliquant sur un lien qui vous sera envoyé par email.

2.3.2.Page de profil #

Cette page est accessible depuis n’importe où sur la plateforme Robo Fabrica. Il suffit de cliquer sur le nom du compte situé en haut à droite, dans la barre de navigation.

2.3.2.1.Informations du compte #

La page de profil vous permet de consulter des informations basiques sur votre compte :

  • votre email (identifiant)
  • la date de création de votre compte

Cette page permet aussi de changer votre mot de passe. Si vous souhaitez changer de mot de passe, il vous sera demandé de saisir votre mot de passe actuel, puis de saisir à deux reprises un nouveau mot de passe valable.

2.3.2.2.Gestion des comptes opérateurs #

Si vous possédez un compte administrateur, vous pouvez administrer depuis cette page plusieurs sous-comptes opérateurs.

Les actions possibles sont :

  • Ajouter un compte opérateur
  • Supprimer un compte opérateur
  • Changer les autorisations d’un compte opérateur.

Limitation d’accès & Autorisations

Un compte administrateur peut accéder à toute l’interface, sans restrictions.

Un compte opérateur peut uniquement effectuer les opérations pour lesquelles il a les autorisations. Il peut consulter celles-ci dans sa page de profil.

Synchronisation

Attention: Lorsque plusieurs sous-comptes utilisent la plateforme Robo Fabrica en même temps, leurs vues ne sont pas synchronisées. Cela peut créer des incohérences d’affichage liées à la désynchronisation. Si cela ce produit, il suffit de recharger la page pour régler le problème.

2.3.3.Gestion des robots #

Cette page fourni une interface permettant de gérer l’ensemble de vos robots et d’avoir des informations globales sur leur état de fonctionnement.

Créer un robot

Pour créer un nouvel robot, cliquez sur le bouton « créer un robot ». Il vous sera alors demandé de rentrer un nom et une description pour cet robot. Ces informations ne seront pas visibles par l’utilisateur final, elles vous permettent juste de plus facilement identifier la problématique résolue par vos différents robots d’un simple coup d’œil. A noter que dans un souci de clarté, les noms des robots doivent être uniques.

Liste des robots

La liste des robots est composée de blocs représentants chacun un robot. Dans ces blocs, on peut voir :

  • Une icône indiquant l’état de l’robot
    • Robot actif: robot vert éveillé
    • Robot en pause: robot blanc endormi
  • Le nom du robot.

Les robots sont classés par ordre alphabétique.

Lorsque l’on sélectionne un robot, des informations sont affichées dans la partie droite de la page. Ces informations comportent :

  • Le nom
  • La description
  • La date de création
  • Le nombre de versions
  • L’état : actif / en pause
  • Dans le cas où le robot est actif:
    • Le nom de la version déployée et la date de dernier déploiement
    • L’activité des 7 derniers jours en terme de nombre de messages reçus
  • Un bouton qui redirige sur la page de configuration du robot.
  • Un bouton pour supprimer le robot.

Attention, il est impossible de supprimer un robot qui est activé. Il faut d’abord le désactiver pour pouvoir procéder à sa suppression.

Il est aussi possible d’accéder à la configuration d’un robot en double-cliquant dessus.

Limitations sur les robots

Le nombre de robots pouvant être actifs en même temps est limité. Cette information est affichée au dessus de la liste des robots. Pour augmenter cette limite, veuillez contacter l’équipe Inceptive.

2.3.4.Gestion des ressources #

2.3.4.1.Documents #

Cette page permet de gérer les documents que l’on héberge sur le serveur Inceptive. Ces documents sont mis en commun pour tous les robots du compte. Il n’y a donc besoin de les créer qu’une seule fois pour que l’on puisse les intégrer dans la configuration de tous les robots.

On peut ajouter un nouveau document en cliquant sur le bouton « ajouter un document ». Il vous sera demandé de choisir le nom du document et le chemin du document sur votre poste de travail pour pouvoir l’uploader. À noter que le nom du document sera utilisé tel quel dans les messages du robot, et doit donc être compréhensible (pour valider les critères du RGAA). Aussi il doit rester unique dans un souci de clarté.

Les différents types de documents que l’on peut ajouter sont :

  • images : png, jpeg
  • pdf

La taille maximale pour un document est de 10 Mo.

Lorsque l’on sélectionne un document, un volet le concernant s’affiche.

Dans ce volet, on peut :

  • Modifier le nom du document.
  • Connaître le type et la taille du document.
  • Avoir un aperçu du document.
    • Dans le cas d’un pdf, on peut naviguer entre les différentes pages.
  • Télécharger le document.
  • Supprimer le document

Attention, il faut être prudent lorsque l’on supprime un document. En effet, il est peut-être utilisé dans la configuration d’un des robots. Afin d’éviter des erreurs de ressources non-disponibles, il est interdit de supprimer ou de renommer un document qui est concrètement utilisé dans une version en prodution d’un agent actif.

2.3.4.2.Agenda Externes #

Cette page permet de gérer les agendas Externes qui sont utilisables dans la configuration des robots (dans les agendas).

On peut créer des agendas externes de deux types : Google et Outlook.

On peut effectuer quelques actions basiques :

  • Créer un agenda externe
    • Il y a une limite maximum sur le nombre de chaque type d’agenda externe que l’on peut créer pour un compte RF.
  • Supprimer un agenda externe
  • Pour les agendas Google
    • Ajouter un email pouvant accéder et modifier l’agenda.

Pour le reste des opérations (édition de plage horaire), il faudra se rendre directement dans l’interface des agendas Google ou Outlook.

 

2.3.5.Live chat #

Il est possible d’accéder au live chat et à la gestion des demandes de prise en charge par un opérateur dans la barre de navigation du home.

Le principe est de faire en sorte qu’un humain puisse prendre le relais du bot sur la résolution de certaines problématiques spécifiques, que l’on aura créé au préalable dans les graphes des robots en y insérant des nœuds de live chat.

2.3.5.1.Gestions des disponibilités #

Un opérateur peut décider pour quels nœuds de quels robots il est disponible.

Dans le modal de gestion des disponibilités, seulement les robots actifs possédant des nœuds de live chat seront listés.

Se rendre disponible pour un nœud signifie que l’on aura accès aux demandes spécifiques à ce nœud.

Si l’on se rend non-disponible pour un nœud, les demandes que l’on était en train de traiter vont être échouée. De plus si l’on était les dernier opérateur à être disponible pour ce nœud, toutes le demandes en attente seront échouée aussi.

Attention: Un opérateur qui se déconnecte est considéré comme non disponible de manière globale.

Notifications du navigateur

Si l’on active cette option, le navigateur va nous prévenir par des notifications lorsqu’il y a de l’activité dans les demandes.

Lorsque l’on clique sur une notification, on est transporté directement dans la page du Livechat « gestion des demandes.

Auto-déconnexion

Cette option permet de choisir le moment de la journée où on est déconnecté de RoboFabrica. L’usage principal serait de s’assurer que l’on soit déconnecté en dehors de ses heures de disponibilité, pour un opérateur Livechat.

Lors de la tentative par RF de nous déconnecter, on peut toujours prolonger la connexion si nécessaire.

NB : cela remplace le fonctionnement standard de maintenir une connexion pour une durée de 8h par défaut.

Important : après avoir activé cette option, il faut effectuer une nouvelle connexion pour que cela soit pris en compte réellement.

2.3.5.2.Traitement des demandes #

Liste des demandes

Les demandes apparaissent dans une liste, sur la gauche. Pour chaque demande, on peut lire:

  • Un numéro pour l’identifier
    • Un indicateur d’activité apparaît en dessous si l’utilisateur final a envoyé un message récemment.
  • Sa provenance (robot & noeud)
  • Une donnée primaire enregistrée dans la demande, si elle existe.
  • Son état : en attente, en traitement, etc
  • Une date de création et/ou un temps d’attente.
    • Si le délai d’attente restant est cours, un symbole de warning apparaît.

Cette liste peut être filtrée par date de création et par état des demandes.

Lorsque l’on sélectionne une demande, du détail est affiché dans la partie centrale et la conversation avec l’utilisateur est affichée sur la partie droite de l’écran dans un widget épuré.

Dans le détail de la demande, une liste des données enregistrée sera aussi affichée. La donnée primaire sera affichée en gras.

Traiter une demande en attente

Lorsque l’on accepte une demande, elle change d’état et devient « en traitement ». Cette demande est alors assignée à l’opérateur qui l’a accepté. Une demande assignée à une opérateur ne peut plus être traitée par un autre opérateur.

Interagir avec une demande en traitement

Voici les actions possibles:

  • Envoyer un message à l’utilisateur.
    • Ce message peut comprendre des liens et des documents, et peut être stylisé (gras, italique, saut de ligne).
    • Il est possible de sauvegarder un message pour pouvoir le réutiliser plus tard.
    • On peut utiliser la touche Tabulation suivie de la touche Entrée pour envoyer rapidement un message.
  • Clôturer la demande, en choisissant une des résolutions que l’on a défini dans le nœud de live chat correspondant.

Clôturer une demande

Lorsque l’on veut clôturer une demande en cours de traitement, il faut d’abord choisir une résolution. Cette dernière doit correspondre avec le plus de fidélité possible à la façon dont s’est terminé la conversation. Par exemple, si le client était satisfait de l’échange, mais aimerait mettre à jour son abonnement pour avoir plus de puissance, on peut imaginer qu’une résolution « Veut améliorer son abonnement » conviendrait. Il est important de choisir la bonne résolution, car la suite de la conversation après l’échange avec l’opérateur humain va dépendre de ce choix.

Gestion des messages enregistrés

Chaque opérateur humain peut enregistrer un ou plusieurs messages personalisés afin de pouvoir les réutiliser facilement par la suite, sans devoir réécrire systématiquement tout le texte.

Cela peut être fait soit en cliquant sur le bouton en haut de la page, soit avec le petit bouton de disquette (sauvegarde) dans le coin supérieur droit de la zone de saisie de message pour les demandes en cours de traitement.

Pour pouvoir utiliser un message enregistré, on doit cliquer sur le petit bouton avec une flèche vers le bas dans le coin supérieur droit de la zone de saisie de message. Il faudra ensuite sélectionner le message souhaité et cliquer sur « utiliser ce message ».

Types d’erreurs

Il existe 3 types d’erreur pour les demandes :

  • Délai dépassé (timeout)
    • La demande a été en attente trop longtemps.
    • Des opérateurs étaient disponibles, mais n’ont pas pris en charge la demande.
  • Rejetée
    • Aucun opérateur n’était disponible pour gérer cette catégorie de demande au moment de sa création.
  • Traitement incomplet
    • Un opérateur s’est déconnecté alors qu’il traitait la demande.
    • Ou un opérateur s’est déconnecté alors que la demande était en attente, avec seulement cet opérateur de disponible pour gérer cette catégorie de demande.

Divers

Il existe un indicateur d’activité en haut de la liste de demandes, à côté de la pagination. Il permet de savoir si une demande dans une autre page (de la pagination de la liste) a eu une activité récente. Il peut être nécessaire d’adapter le filtre sur les états afin de la trouver plus facilement.

2.3.5.3.Supervision #

Cette interface permet de consulter l’état actuel des demandes de livechat ainsi que les performances globales.

On dispose en haut à gauche d’un bouton pour rafraîchir les données affichées, et d’un filtre avec des dates de début et de fin.

Liste des opérateur livechat

Cette liste affiche l’ensemble des sous-comptes qui disposent des droits d’opérateur (+ le sous-compte administrateur).

Pour chaque opérateur, on affiche:

  • Son nom
  • Son état actuel
  • Ses disponibilités en termes de catégorie (robot + noeud)
  • Le nombre de demandes traitées.

Listes des demandes en attente ou en erreur

La liste des demandes en attente comporte :

  • Le numéro de la demande
  • Sa catégorie
  • La donnée primaire (optionnelle)
  • Le temps d’attente

La liste des demandes ayant rencontré une erreur comporte, en plus d’un filtre sur le type d’erreur :

  • Le numéro de la demande
  • Sa catégorie
  • La date
  • La donnée primaire (optionnelle)
  • Un identifiant de conversation pour la retrouver dans les métriques du robot en question.
    • On peut aussi accéder directement aux métriques dans une fenêtre modale.

Métriques par catégorie

Une catégorie du livechat est un couple robot + noeud de livechat.

Pour chaque catégorie, on peut consulter :

  • Les comptes des demandes pour chaque état possible
  • Le taux de demande répondu, accompagné d’une barre de couleur résumant les performances.
  • Les temps moyens d’attente et de traitement.
  • Un tableau donnant les détails des demandes
    • Le numéro de la demande
    • La date
    • Le temps d’attente final
    • Le temps de traitement final
    • Le nom de l’opérateur ayant traité la demande
    • Un identifiant de conversation pour la retrouver dans les métriques du robot en question.
      • On peut aussi accéder directement aux métriques dans une fenêtre modale.
    • Ce dernier tableau dispose aussi de filtres:
      • Temps minimum d’attente ou de traitement, permettant de repérer les demandes avec un temps anormalement long.
      • États des demandes.

Un filtre global aux catégories permet de limiter les demandes à celles concernées par un opérateur particulier.

2.3.6.Historique des opérations #

Il est possible d’accèder à l’historique des opérations depuis la barre de navigation.

Cette fenêtre permet de savoir quand des actions ont été réalisées et avec quel compte.

Les opérations qui sont enregistrées pour le moment sont:

  • Sous-compte: création, suppression, changement des autorisations
  • Robot: création, suppression, édition de la configuration générale, activation.
  • Version: création, suppression, vérouillage, deploiement, édition
  • Connecteur: activation, configuration, création, suppression d’avatar personnalisé (widget)
  • Ressources externes
    • Document: création, suppression, édition
    • Agendas Google: création, suppression, ajout de mails.
    • Agendas Outlook: création, suppression.
  • Configuration du graphe
    • Noeud: création (ou copie), suppression
    • Sous-graphe: création (ou copie), suppression, sélection du sous-graphe par défaut, sélection du point de départ
    • Variable: création, suppression, édition
    • Type composite: création, suppression, édition du nom, création de champ, suppression de champ, édition de champ
    • Carrousel: création, suppression, édition du nom, création de champ, suppression de champ
    • Phrases génériques: création, suppression, édition
    • Système de droit: création , suppression, édition
    • Définitions: création, suppression, édition
    • Agendas: création, suppression, édition
  •  NLP
    • Intention: ajout, suppression, édition, activation de langue, édition de la phrase de suggestion pour une langue
    • Famille d’intention: ajout, suppression, édition, activation de langue, édition de la phrase de suggestion pour une langue
    • Entité: ajout, suppression, édition
    • Phrase (stochastique): ajout, suppression, édition (rôle ou groupe de formulation)
    • Noeud (arbre déterministe): ajout, suppression, édition
    • Paramètres globaux :
      • Sélection de modèle
      • Changement des seuils de doute ou compréhension.
      • Confirmation de saut par intention.
        • Activation du mode.
        • Configuration des phrases.
  • Optimisation
    • Projets: création, suppression, annotation, changement de version d’annotation, édition du nom ou de la description
    • Rapport: création, suppression
    • Automatisation: activation, configuration

2.4.Configurer un robot conversationnel #

2.4.1.Etat et Déploiement #

La principale utilité de cette page est de pouvoir choisir la version du robot à déployer. Lorsque l’on clique sur le bouton correspondant, une liste contenant les versions existantes est affichée. On peut alors choisir soit une version verrouillée, qui a donc déjà été validée et déployée auparavant, soit une version qui n’a jamais été déployée, auquel cas il faudra s’assurer qu’elle soit valide.

Pour plus d’informations concernant le mécanisme des versions, veuillez consulter cette section.

On peut activer ou désactiver le robot avec un interrupteur.

Cette page permet aussi de consulter et de modifier des paramètres globaux du robot :

  • Le nom
  • La description
  • L’activation de la suppression automatique de l’historique des conversations.
    • On peut choisir la durée de conservation des conversations.
    • La suppression va principalement effacer les messages des utilisateurs, mais garder les métriques.

Attention: le changement de version et la désactivation d’un robot ont des conséquences importantes pour vos utilisateurs finaux. Ces deux opérations suppriment les états des conversations en cours ainsi que l’historique de conversation.

Créer un snapshot de version

On peut créer des snapshots, qui offre la possibilité de tester un état figé d’une version d’un robot. La version choisie n’a donc pas besoin d’être nécessairement verrouillée, elle a juste besoin d’être valide.

Un snapshot propose une URL qui mène à une page consultable par n’importe qui. Cette page comporte un widget permettant de tester l’état de la version en question.

On peut aussi supprimer les anciens snapshots qui ne sont plus utiles.

2.4.2.Les versions #

2.4.2.1.Gestion des versions #

Pour accéder à la configuration des versions, il faut aller dans la page « Versions » dans la barre de navigation principale.

Sur la gauche, on dispose d’une liste affichant toutes les versions existantes. Si un symbole de cadenas apparaît à coté du nom de la version, cela signifie que la version est verrouillée. Si un symbole de triangle Play apparaît à côté du nom de la version, cela signifie qu’elle est actuellement déployée.

Créer une version

Pour créer une version, appuyez sur le bouton correspondant en dessous de la liste. Vous pouvez alors soit créer une version en partant de zéro, soit en partant d’un autre version existante, que vous pourrez choisir.

Lorsque l’on crée une version à partir d’une autre version, toute la configuration de cette dernière est copiée (graphe, jeu d’entrainement, etc). Cela permet notamment de tester une modification sans craindre de casser une configuration qui fonctionnait bien. Pour information, les métriques ne sont pas copiées, car elles ne font pas parties de la configuration.

Détails et autres actions

Les informations affichées à droite correspondent à la version sélectionnée. On peut modifier le nom de la version et sa description.

Le nom de la version à partir de laquelle la version sélectionnée a été créée est affiché. On peut accéder aux informations de cette version parente en cliquant sur son nom.

Pour supprimer la version sélectionnée, vous devez cliquer sur le bouton avec le symbole de poubelle à droite.

A noter que l’on ne peut pas supprimer une version si:

  • Elle est actuellement déployée.
  • Ou c’est la seule version restante.
  • Ou elle est utilisée dans une annotation de projet d’optimisation.

On peut aussi choisir de verrouiller ou déployer la version sélectionnée en cliquant sur les boutons correspondants. Pour rappel, déployer une version la verrouille aussi.

2.4.2.2.Barre des versions #

Dans la page « Configuration », une barre horizontale permet de naviguer entre les versions dont on veut consulter ou modifier le graphe et l’apprentissage.

Dans la page « Métriques », une barre similaire permet de choisir les multiples versions dont on veut consulter les statistiques.

A noter que l’on a un accès rapide pour créer une version dans la page « Configuration », à droite de la barre des versions.

2.4.3.Les connecteurs #

Un robot peut être déployé sur différents canaux de communication, que ça soit des services de conversations dédiés ou un widget intégré à des pages web.

Pour autoriser un utilisateur à interagir avec un certain canal de communication, il faut activer le connecteur correspondant, en cliquant sur l’interrupteur de ce connecteur.

Les différents connecteurs disponibles pour le moment sont :

  • Widget intégrable
  • Facebook

Chaque connecteur possède sa propre configuration qui va dépendre du canal en question.

Lorsque vous mettez à jour cette configuration, veuillez faire en sorte de bien sauvegarder si vous voulez conserver les modifications effectuées. Pour cela, il suffit de cliquer sur le bouton « sauvegarder » logé en haut à droite de la zone de configuration du connecteur concerné.

2.4.3.1.Widget intégrable #

Vous pouvez intégrer à votre site web un widget customisable qui fera office de canal de conversation avec le robot.

Personnalisation du widget

La configuration de ce widget concerne son style et sa forme.

 

La configuration du widget est divisée en plusieurs thématiques : « Général », « Boutons », « Messages » etc.

Pour chaque thématique, on peut modifier à la main chacune des propriétés, dans les moindres détails.

Si l’on veut avoir un style visuel cohérent sans devoir rentrer dans les détails de chaque élément, on peut utiliser le bouton « couleurs rapides », qui demande trois informations pour générer automatiquement l’ensemble des couleurs.

Voici la liste des caractéristiques que vous pouvez modifier :

  • Le nom du bot (peut être caché)
    • On doit choisir un nom par langue utilisée dans la configuration du robot.
  • L’avatar du bot
  • Le style général, pour des formes plus arrondies ou carrées
  • La police d’écriture et sa taille
    • On peut aussi définir la taille de la police dans les cartes de carrousel de façon séparée.
  • Les couleurs des différents composants du widget
  • L’intensité de l’ombre portée sous le widget
  • L’affichage ou non des boutons de contrôle de la taille du widget.
  • La taille par défaut du widget à son ouverture: normale, large ou pleine page
  • L’affichage ou non de petits avatars à côté des messages du robot. Nécessaire si l’on veut bien respecter les consignes du RGAA.
  • L’activation d’une option de remise à zéro de la conversation. Si une telle option est activée, un nouveau bouton apparaîtra dans l’entête du widget pour y accéder.
  • Le comportement du navigateur lorsque l’on clique sur un lien d’URL dans le widget. Soit on ouvre un nouvel onglet, soit on remplace la page actuelle.
  • Le secret JWT (seulement si vous avez les autorisations nécessaires).

Customisation de l’avatar

En cliquant sur le bouton pour changer l’avatar dans la configuration du widget, une fenêtre s’ouvre et vous propose de sélectionner un avatar dans une liste d’avatar existant. Vous pouvez décider de ne pas afficher d’avatar en sélectionnant l’élément « pas d’avatar » de la liste.

Si vous souhaitez utiliser un avatar personnalisé, vous pouvez téléverser une image qui servira d’avatar. Plusieurs formats sont supportés, mais il est préférable de choisir un format PNG pour profiter de la transparence éventuelle. À noter qu’une taille maximale de 2 Mo est tolérée. Ces avatars personnalisés sont partagés entre les différents robots de votre compte; il est donc possible de les supprimer seulement s’ils ne sont actuellement utilisés par aucun robot.

RGAA

Pour aider le respect des critères lié à l’accessibilité définis par le RGAA, un indicateur nous permet de savoir s’il y a un problème quant au contraste entre les couleurs choisies pour les différents éléments du widget.

Dans le cas où un problème de contraste existerait, veuillez survoler une ligne de configuration de couleur qui apparaît en rouge pour faire clignoter les lignes de la même catégorie qui correspondent à ce mauvais contraste. Si l’on veut connaître toutes les lignes en conflit, on peut cliquer sur la ligne rouge et une petite fenêtre avec les détails apparaîtra, et permettra de modifier les autres couleurs sans devoir changer de catégorie.

En pratique, pour corriger un problème de contraste, il suffit ensuite d’assombrir une couleur ou d’éclaircir une autre pour régler le problème.

Pour information, RF suit cette procédure de test de contraste, avec les seuils de ratio 4,5, et dans certains cas 3 ou 2.

Tester dans un smarphone

En appuyant sur ce bouton, un nouvel onglet va s’ouvrir dans votre navigateur avec une interface proposant un widget de chat se comportant comme dans un smartphone. Vous aurez aussi la possibilité de définir la largeur et hauteur de l’écran de l’appareil virtuel.

Intégration du widget

Pour intégrer un widget à une page web il faut rajouter une certaine balise de script dans le « head » de la page concernée. Vous pourrez trouver une telle balise dans la configuration d’un sous-graphe. A noter qu’il faut bien activer le saut par navigation pour ce sous-graphe pour que la balise soit opérationnelle.

En plus de cette balise, il faut aussi que soit présent dans la page un bouton sur lequel on puisse cliquer, avec un identifiant correspondant à celui présent en paramètre dans la balise.

Important: Lorsque l’utilisateur clique sur ce bouton, il disparaît et est remplacé par le widget qui apparaît en position fixe dans le coin inférieur-droit de la page. Ce bouton réapparaît lorsque l’on referme le widget.

Affichage de l’actualité

Il est possible d’activer cette fonctionnalité pour afficher une actualité dans le widget à son ouverture. Les conditions d’affichage sont les suivantes :

  • Une actualité est disponible pour ce widget et pour la langue courante de la conversation. La date actuelle doit être dans l’intervalle de validité de l’actualité.
  • L’actualité n’a pas déjà été affichée dans les 24 dernière heures.
    • Cela est ignoré si l’actualité a été changée.

En cliquant sur le bouton pour configurer l’actualité, cela ouvre une fenêtre modale. Il est important de comprendre qu’il ne peut y avoir qu’une seule activité par robot et par langue.

La configuration comporte :

  • L’icône et le titre de l’actualité
  • La phrase de contenu, qui peut disposer de liens.
  • Les dates de début et de fin pour la validité de l’actualité

Il est aussi possible de modifier le style de l’actualité et de tester l’affichage (via un bouton situé à droite de la démo du widget).

Affichage des suggestions dynamiques

En cliquant sur un bouton situé à droite du widget, on peut afficher une simulation des suggestions dynamiques.

Lorsque les suggestions dynamiques apparaissent, le bouton d’envoie de message est caché pour forcer l’utilisateur à cliquer sur une des suggestions.

2.4.3.2.Facebook #

Vous pouvez lier votre chatbot Robo Fabrica à une page Facebook à travers une App Facebook. Vous trouverez plus d’information sur la configuration d’une App Facebook ici.

Pour configurer ce connecteur il vous renseigner plusieurs éléments :

  • le token d’authentification et de webhook  : veuillez générer un UUID et l’insérer dans le champs de texte,
  • l’ID de la page qui utilisera le chatbot. Vous trouverez les instructions pour accéder à cette information ici,
  • le token d’accès à la page. Vous le trouverez sur le tableau de bord de votre App Facebook dans l’onglet Messenger -> Paramètres -> Token d’accès.

Une fois le connecteur sauvegardé, vous pourrez accéder à l’URL d’API de Robo Fabrica à travers l’interface de gestion des connecteurs. Il faut alors copier et coller cette URL dans le tableau de bord de votre App Facebook dans l’onglet Messenger -> Paramètres -> Webhooks

À noter que si ce connecteur est activé il faut s’assurer que la configuration des carrousels Facebook est bien adressée dans les nœuds de liste dont le mode carrousel est activé.

NB: Il n’est possible de configurer qu’un seul connecteur pour une seule page Facebook par robot.

2.4.4.Le graphe de conversation #

2.4.4.1.Informations générales sur les graphes #

Interface de configuration

Le panel de gauche (zone #1) est une sorte de boîte à outils comporte les nœuds et sous-graphes à faire glisser dans la zone d’édition pour rajouter des composants au graphe.

Le panel de droite (zone #2) permet de configurer les autres paramètres généraux du graphe :

  • Les types de données
  • Les variables
  • Les phrases génériques
  • Les modèles de carrousel
  • Les droits (aux intentions)

Ces deux panels peuvent être rétractés si on a besoin de plus d’espace pour afficher la zone d’édition.

La partie centrale, ou zone d’édition (zone #3) de cette interface, affiche le graphe en cours de construction. En superposition avec cette dernière, il y a les zones #4, #5 et #6. La zone #4 comporte des informations sur la validité du graphe.

La zone #5 comporte des boutons qui facilitent le zoom et le recadrage du graphe, et un ensemble de couches d’information à d’activer ou non:

  • affichage des étiquettes des nœuds
  • affichage des liens de saut
  • affichage (et activation) de la grille aimantée
  • affichage des commentaires

NB : l’activation de ces couches d’information est sauvegardée dans votre poste de travail, afin de ne pas avoir à les activer à chaque réouverture de votre navigateur.

La zone #5 comporte aussi des boutons permettant de modifier de façon groupée une sélection de sous-graphes (non affiché ici).

La zone #6 est une barre de saisie pour faire une recherche dans le graphe.

Interactions

Pour se déplacer dans le graphe, il faut saisir le fond de la zone d’édition avec le clic droit de la souris, puis la faire glisser.

Pour zoomer/de-zoomer, on peut soit utiliser la molette de la souris, soit utiliser les deux boutons prévus à cet effet dans la zone #5.

Il est possible de recadrer le graphe dans la zone d’édition en appuyant sur le bouton correspondant de la zone #5. Cela est utile lorsque l’on veut avoir une vue globale du graphe, ou que l’on s’est trop éloigné du graphe en se déplaçant.

2.4.4.2.Gestion des sous-graphes #

Créer un sous-graphe

Pour créer un sous-graphe, il faut glisser-déposer l’élément « Nouveau sous-graphe » depuis le panel de gauche dans la zone d’édition. Le sous-graphe est placé à la position où il est lâché. A sa création, un sous-graphe est vide de nœuds, et son nom est généré en partie aléatoirement.

Supprimer un sous-graphe

Pour supprimer un sous-graphe il faut faire un clic droit sur la boîte d’entête du sous-graphe dans la zone d’édition. Un menu contextuel apparaîtra alors. Lorsque l’on valide la suppression, le sous-graphe est détruit, ainsi que tout les nœuds qui le composent, et donc aussi les liens qui sont reliés à ces nœuds.

Déplacer un sous-graphe

Pour déplacer un sous-graphe, il suffit de saisir à la souris la boîte d’entête du sous-graphe et de la lâcher à une autre position dans la zone d’édition.

Sélectionner plusieurs sous-graphes et modifications groupées

On peut sélectionner plusieurs sous-graphes avec le clic gauche de la souris.

On peut déplacer plusieurs sous-graphes ensemble, en déplaçant un des sous-graphes sélectionnés.

Si on dispose de sous-graphes sélectionnés, on peut cliquer sur un des trois boutons qui deviennent actifs, en dessous des boutons de zoom/dezoom. Ils permettent d’aligner les sous-graphes verticalement, de les redimensionner en hauteur ou de les espacer horizontalement de façon régulière.

Configurer un sous-graphe

Pour accéder à la configuration d’un sous-graphe, cliquez sur la boîte d’entête du sous-graphe, où son nom est affiché. Une fenêtre apparaîtra alors; Cette fenêtre comporte tous les fonctionnalités nécessaires au paramétrage du sous-graphe.

Vous pouvez dans cette fenêtre :

  • Changer le nom du sous-graphe
  • Configurer les sauts par navigation
    • Activer ce type de saut
    • Changer le label de saut
    • Copier la balise d’intégration
  • Configurer les sauts par intention
    • Activer ce type de saut
    • Choisir l’intention du sous-graphe (customisée ou pré-construite)
  • Changer le style visuel du sous-graphe
    • Choisir la couleur de la zone du sous-graphe

Choisir le point de départ d’un sous-graphe

Pour choisir le point de départ d’un sous graphe il faut créer un lien entre le point d’accroche du sous-graphe, situé en bas de sa boîte d’entête, et le nœud désiré. Cette interaction est similaire à la création de lien entre deux nœuds. Similairement, on peut annuler le point de départ du sous graphe en supprimant le lien de départ (clic droit sur le lien).

À propos du label (saut par navigation)

Ce label sera utilisé à terme dans des URL lors des échanges de message entre l’utilisateur et le robot. Il ne doit donc pas contenir certains caractères qui pourraient empêcher le fonctionnement attendu de l’URL. Ces caractères sont ? & $ = % # / , ; et les espaces blancs.

Aussi, lorsque l’on active le saut par navigation, si le label est vide, il prendra une valeur par défaut en se calquant sur le nom du sous-graphe.

2.4.4.3.Gestion des nœuds #

Créer un nœud

Pour ajouter un nœud au graphe, il faut glisser-déposer l’élément visuel de nœud du type que l’on veut depuis le panel de gauche dans la zone d’édition. Il ne peut être lâché que directement sur un sous-graphe, auquel il appartiendra. Il sera placé à la position où il est lâché.

Supprimer un nœud

Pour supprimer un nœud, il faut faire un clic droit sur le nœud. Un menu contextuel vous proposant de supprimer le nœud apparaîtra alors. Lorsque l’on supprime un nœud, cela supprime aussi tous les liens liés à ce nœud.

Déplacer un nœud

Pour déplacer un nœud, il suffit de saisir à la souris l’élément visuel du nœud et de le lâcher sur une autre position dans la zone d’édition, tout en restant dans les limites du sous-graphe auquel il appartient.

Assigner un nœud à un autre sous-graphe

On peut transférer un nœud d’un sous-graphe à un autre si l’on essaye de le déplacer depuis un sous-graphe dans un autre sous-graphe. Cela ne détruit pas les liens de ce nœud, car ils sont encore techniquement possibles.

Configurer un nœud

Pour accéder à la configuration d’un nœud il faut faire un simple clic sur l’élément visuel du nœud dans la zone d’édition. Une fenêtre apparaîtra alors, elle comporte toutes les fonctionnalités nécessaires au paramétrage du nœud.

Le paramétrage de chaque nœud dépend du type de nœud. Le seul paramétrage commun à tous les nœuds est la possibilité de modifier le nom du nœud.

Il est possible de passer de la configuration d’un nœud à la configuration d’un de ses fils en cliquant sur la sortie correspondant dans la section « gestion des sorties ».

Dupliquer un nœud

Pour dupliquer un nœud, il faut faire un clic droit sur le nœud. Un menu contextuel vous proposant de dupliquer le nœud apparaîtra alors. Lorsque l’on duplique un nœud, une copie avec le même type et la même configuration est créée. Son nom dispose d’un préfixe permettant de la distinguer de l’original (exemple : « Copie de Question 3″).

Tester à partir d’un nœud

Dans le menu contextuel du nœud, on peut choisir de tester à partir de ce dernier. Cela va ouvrir le mode de test en faisant partir la conversation de ce nœud.

Il est important de comprendre que si l’on procède ainsi, tous les nœuds situés en amont n’auront pas été parcourus. Il est donc possible que certaines variables n’aient pas une valeur attendue pendant le test.

2.4.4.4.Gestion des liens entre les nœuds #

Créer un lien

Pour ajouter un lien entre les nœuds du graphe, il faut faire un simple clic sur un des points d’accroche de sorties, situés en bas d’un nœud et faire un second clic sur un point d’accroche d’entrée, situé en haut d’un autre nœud. Un lien sera alors créé. À noter que pendant la manipulation, un lien fictif apparaît pour vous aider à mieux visualiser la création de lien.

Pour annuler la création en cours d’un lien, il faut effectuer un clic ailleurs que sur un point d’accroche d’entrée.

Lorsqu’un nœud dispose de plusieurs points d’accroche de sorties, il faut pouvoir les différencier. Pour cela, on peut s’aider des symboles des points d’accroche, et des textes qui apparaissent lorsqu’on les survole.

Supprimer un lien

Pour supprimer un lien, il faut faire un clic droit sur le lien. Un menu contextuel vous proposant de supprimer le lien apparaîtra alors.

Camoufler un lien

Il est possible de cacher un lien en partie. Seulement le début et la fin du lien seront affichés.

Pour cela, il faut effectuer un clic droit sur un lien et choisir l’option correspondante dans le menu. On peut aussi directement cacher tous les liens liés à un nœud en faisant un clic droit sur ce dernier.

Interaction de déplacement rapide

Il existe une interaction permettant de recadrer la vue sur le fils d’un nœud. Pour cela, il faut faire un clic droit sur un point d’accroche utilisé d’un nœud ou sur le lien sortant, et sélectionner l’option « Aller au fils« .

De la même manière, l’action « Aller au parent » est accessible dans le menu des liens.

2.4.4.5.Les phrases à morceaux #

Vous pouvez configurer les phrases écrites par le bot principalement en modifiant des phrases à morceaux.

Ces phrases peuvent comprendre des morceaux de différents types :

  • du texte (taille maximale: 1024 caractères)
  • des variables
  • des liens url
    • Une option permet de choisir le comportement du navigateur lorsque l’on clique sur le lien (ouvrir un nouvel onglet ou remplacer l’onglet actuel). Cela est prioritaire sur le comportement global défini dans la configuration du connecteur « widget ».
    • le format « mailto:dupond@france.fr » est également supporté
  • des liens pour afficher / télécharger des documents:
    • Les documents autres que les vidéos peuvent être hébergés sur la plateforme Robo Fabrica
    • Une url externe peut être spécifiée pour un document qui serait hébergé ailleurs. Cette url peut être un lien YouTube.
  • des sauts vers un autre sous-graphe (seulement vers un sous-graphe qui accepte les sauts par navigation)
    • Lorsqu’un tel morceau est présent, une sortie supplémentaire sera présente sur la droite du noeud, en tant que point de départ d’un lien de saut.
  • du texte avec définition

Le fragment d’interface permettant d’éditer une phrase à morceaux se présente sous la forme suivante:

Les différents morceaux qui composent la phrase sont affichés, sous forme d’une ligne de texte éditable, de manière assez fidèle à comment elle sera écrite dans le widget.

  • Pour configurer un morceau, il faut faire un clic gauche dessus. La configuration est relativement simple et dépend du type de morceau.
  • Pour supprimer un morceau, il faut faire un clic droit dessus, et sélectionner l’option dans le menu contextuel.
  • Pour ajouter un morceau de variable ou de document, il faut positionner le curseur à l’endroit désiré et cliquer sur l’icône correspondante dans le menu.
  • Pour ajouter un morceau de lien ou de saut, il faut sélectionner du texte puis cliquer sur l’icône correspondante dans le menu.
    • Si vous souhaitez répondre au RGAA, prenez garde à bien faire en sorte que le texte du lien soit le plus clair et explicite possible.
  • Il est possible d’effectuer quelques actions classiques aux éditeurs de texte
    • Copier / coller (contrôle-c, contrôle-v)
    • Défaire / refaire (contrôle-z, shilf-contrôle-z)
    • Sauter la ligne (entrée)

Remarque 1: certaines phrases à morceaux n’ont accès qu’à un sous-ensemble réduit de types de morceaux.

Remarque 2: les phrases à morceaux sont limitées à 50 morceaux.

Remarque 3: une phrase à morceaux est automatiquement sauvegardée lorsque vous effectuez un clic en dehors.

2.4.4.6.Gestion des variables #

Le principal moyen de gérer les variables est d’utiliser la liste des variables située dans le panel de droite.

Les variables sont filtrables par nom, par type de donnée et par sur-type.

A savoir que dans une majorité des cas, il est possible de manipuler une version miniature de la liste des variables directement au moment où l’on doit choisir une variable dans le contexte de la configuration d’un nœud.

Créer une variable

Pour créer une variable, il faut rentrer son nom et choisir son type dans la ligne au dessus de la liste des variables. On peut aussi choisir entre une variable standard et une variable de liste.

Attention: une fois qu’une variable est créée, on ne peut plus modifier son type.

Supprimer une variable

Pour supprimer une variable, il faut cliquer sur la croix située au bout de sa ligne dans la liste des variables.

Renommer une variable

Pour renommer une variable, il faut directement modifier son nom dans la boite de texte en début de sa ligne dans la liste des variables.

2.4.4.7.Les définitions #

Une définition permet de créer un texte qui sera utilisable en tant qu’information contextuelle affichable dans le widget.

Une définition comporte :

  • Un nom
  • Une phrase à morceau
    • Contenu autorisé : texte, lien, saut vers un sous-graphe

Dans la fenêtre modale de gestion des définitions, on peut créer, supprimer et modifier les définitions.

2.4.4.8.Les modèles de carrousel #

L’interface d’édition des modèles de carrousel se présente de la manière suivante:

La zone #1 comporte la liste des différents modèles, et un bouton pour ajouter un nouveau modèle.

La zone #2 permet de changer le nom du modèle sélectionné ou de supprimer ce dernier.

La zone #3 permet d’ajouter un champ dans le modèle en choisissant son nom et son type. Les deux types disponibles sont:

  • Un champ textuel
  • Une image

La zone #4 permet de configurer un champ sélectionné en modifiant le style CSS qui lui est appliqué. Il est important de bien mettre des guillemets autours des clefs et valeurs, en respectant le format JSON.

La zone #5 permet de positionner les champs dans le modèle de carte de carrousel.

La zone #6 propose une prévisualisation d’une carte de carrousel fictive, respectant le modèle de la zone #5.

NB: une image apparaîtra toujours en dessous d’un texte, en cas de chevauchement.

2.4.4.9.Les agendas #

L’interface d’édition des agendas se présente de la manière suivante:

La zone #1 comporte la liste des différents agendas, et un bouton pour ajouter un nouvel agenda.

La zone #2 permet de changer le nom de l’agenda sélectionné ou de supprimer ce dernier.

La zone #3 permet de choisir la durée d’un créneau. Tous les créneaux proposés seront de cette durée-là. Par exemple, un créneau [8h-8h30] a une durée de 30 minutes.

La zone #4 permet de choisir le type d’agenda externe et de sélectionner quel agenda externe servira a enregistrer les créneaux utilisés.

Pour plus d’informations sur les types d’agendas externes disponibles pour le moment, aller ici.

2.4.4.10.Le système de droits #

Ce système permet d’autoriser ou d’interdire l’utilisation de certaines intentions. Une intention interdite ne pourra pas être détectée dans un nœud d’intention, ou pour un saut vers un sous-graphe.

Un droit contient une liste d’intentions sélectionnées, qui seront autorisées par ce droit.

Il est important de noter que si une intention n’est dans aucun droit, alors elle est toujours autorisée dans le graphe, peu importe le contexte.

Les intentions peuvent être filtrées:

  • Par du texte (nom de l’intention)
  • Par celles qui ne sont dans aucun droit (toujours accessibles)
  • Par celles qui sont dans le droit actuellement sélectionné

2.4.4.11.Validité du graphe #

La validité du graphe est évaluée à chaque modification apportée au graphe, ou à chaque fois que l’on crée ou supprime une donnée utilisée dans la configuration du graphe (variable, intention, …).

Un graphe de conversation est valide si:

  • La construction globale est valide.
  • Chaque configuration de sous-graphe est valide.
  • Chaque configuration de noeud est valide.
  • Chaque variable est valide.
  • Chaque définition est valide.
  • Chaque agenda est valide.

Les informations de validité liées au graphe dans son ensemble sont affichées dans la zone #4. Lorsque l’on survole le bloc représentant la validité du graphe dans la zone #4, des informations plus précises seront affichées concernant les problèmes éventuels qui impliquent que le graphe n’est pas valide. En plus de cela, le nombre d’éléments invalides est affiché. Quand on clique dessus, cela zoom successivement sur chaque élément invalide du graphe.

Lorsqu’un sous-graphe ou un nœud possède une configuration non-valide, un symbole de point d’exclamation apparaît sur ce dernier. Pour voir plus d’informations, il faut accéder à la configuration de ce sous-graphe ou de ce nœud, dans laquelle on peut survoler la message situé dans le coin supérieur-droit pour plus de détails.

NB: Pour mettre à jour la validité d’un nœud ou d’un sous-graphe, il faut sauvegarder sa configuration, ce qui va aussi fermer en conséquence la fenêtre de configuration.

2.4.4.12.Rechercher dans le graphe #

Il est possible de rechercher des éléments de configuration du graphe en écrivant un texte dans la barre de recherche. Les résultats trouvés contiendront le texte écrit, sans tenir compte des accents ou de la casse et en normalisant certains caractères spéciaux (caractères Microsoft Word, variantes des guillemets).

Voici la liste des choses que l’on peut rechercher:

  • Les noms des nœuds
  • Les noms des sous-graphe
  • Les noms des intentions (personalisés et pré-construites)
  • Les noms des entités
  • Les noms des rôles d’entité
  • Les noms des groupes de formulation d’entité
  • Les noms des variables
  • Les noms des documents
  • Les noms des types de données composites
  • Les noms des définitions et leur contenu.
  • Du texte présent dans les phrases et autres éléments textuels de la configuration des nœuds (URL, valeur fixe que l’on affecte à une variable ou que l’on envoie dans une requête…)
  • Des commentaires

Lorsque l’on clique sur un résultat de recherche, le nombre d’éléments du graph correspondant sera affiché en fin de ligne et ils se mettront à clignoter dans le graphe. Si l’on clique plusieurs fois sur ce nombre, un zoom est effectué dans le graphe pour visualiser un à un les éléments trouvés.

2.4.4.13.Commentaires #

Ajouter des commentaires

Il est possible d’ajouter des commentaires pour les nœuds et les sous-graphes. Le moyen le plus simple de faire cela est dans le menu contextuel de ces éléments. On peut de la même manière éditer ou supprimer un commentaire existant.

Une fois la fenêtre modale d’édition de commentaire ouverte, on peut composer le texte souhaité en incluant des parties en gras ou en italique et des sauts de ligne si nécessaire.

Un autre moyen d’accéder à cette interface est en cliquant sur le bouton avec l’icône de post-it situé en haut de la fenêtre modal de configuration de nœud ou de sous-graphe.

Visualiser dans le graphe

Les commentaires apparaissent dans le graphe lorsque l’on survole les éléments qui en possèdent. Ils seront indiqués par une petite icône de post-it dans le coin inférieur droit des nœuds ou des en-têtes de sous-graphe. Les commentaires ne sont visibles que si la couche d’affichage correspondant est activée.

2.4.5.Apprentissage #

Les chatbots conçut sur la plateforme Robo Fabrica peuvent être paramétrés pour répondre à des problématiques métiers spécifiques. Pour cela, il est nécessaire de passer par une phase d’apprentissage. Le but de cette étape est de permettre aux chatbots de détecter correctement des intentions utilisateurs.  Sur Robo Fabrica l’apprentissage peut se faire de deux façon différente.

Méthode Stochastique : Vous disposez d’un jeu de phrases qui a été mis en correspondance avec des intentions. Vous pouvez transférer ces phrases sur la plateforme Robo Fabrica et ainsi les utiliser pour la compréhension du langage.

Méthode Déterministe : Vous ne disposez pas de phrases d’entraînement. Vous pouvez alors utiliser la technologie Deterministic Tree de Robo Fabrica afin de construire un arbre de compréhension métier. Cette technologie permet un déploiement serein de chatbots. Les performances de compréhension sont au rendez-vous. Cependant, le taux de suggestion du chatbot sera relativement élevé comparé aux méthodes stochastiques. C’est pour cela que les projets d’optimisations permettent, petit à petit, de basculer vers la méthode stochastique.

2.4.5.1.Généralités sur l'apprentissage #

Quel que soit le modèle de compréhension du langage utilisé, des éléments restent communs.

Il vous faudra déterminer un ensemble d’intentions qui correspondront aux problématiques que vos utilisateurs pourront résoudre à travers votre chatbot. Les intentions préconstruites (bonjour/au revoir/etc…) sont accessibles peut importe le modèle de langage utilisé. Les seuils de compréhensions sont communs CEPENDANT pour le modèle déterministe nous conseillons fortement d’utiliser les valeurs par conseillées plus bas (0.1-0.9). Le système des entités et de leurs formulations est également disponible quelque soit le modèle de langage utilisé.

Cas des suppressions

Attention: Lorsque l’on supprime une intention, une famille d’intention, une entité, un rôle d’une entité ou un groupe de formulation d’une entité, cette information disparaît de toutes phrases du modèle stochastique, de tout noeud du modèle déterministe, et aussi de la configuration du graphe de conversation. Il est donc possible que cela rende la configuration de la version invalide.

Par exemple, si l’on supprime une intention, les phrases qui lui étaient associées deviennent sans intention.

2.4.5.1.1.Choix du modèle #

Il est possible de choisir quel modèle sera utilisé pour la compréhension du langage. Nous avons le choix entre le modèle stochastique, le modèle déterministe et un modèle hybride.

Le modèle choisi devra être configuré dans l’onglet correspondant. Si l’on choisi le modèle hybride, il faudra configurer les modèles stochastique et déterministe.

Les modèles stochastique et déterministe utilisent les mêmes intentions et entités définies de manière globale.

Modèle hybride déterministe

Ce modèle cherche si l’on a une correspondance exacte dans le modèle stochastique, sinon il utilise l’arbre du modèle déterministe pour évaluer la ou les intentions les plus probables.

Modèle hybride stochastique

Ce modèle utilisera le modèle qui a eu le meilleur score parmi les modèles stochastique et déterministe.

2.4.5.1.2.Gestion des intentions #

Créer une intention ou une famille d’intention

Pour ajouter une intention, cliquez sur le bouton « créer une intention », rentrer un nom dans la boîte de texte, puis cliquer sur OK. Si le nom est valide (pas déjà existant), alors le nouvel élément sera créé.

La création de la famille d’intention se fait de la même manière, avec le bouton correspondant.

Configurer le nom ou supprimer

On peut modifier le nom de l’intention ou famille sélectionnée en éditant la boite de texte dans la partie inférieure de la fenêtre.

Pour supprimer l’élément sélectionné, il faut cliquer sur le symbole de suppression dans la partie inférieure de la fenêtre.

Affecter une intention à une famille

On peut affecter une intention à une famille en la saisissant à la souris et en la déposant dans la famille souhaitée. On peut changer la famille actuelle de l’intention de cette manière aussi.

Pour retirer une intention d’une famille, on peut la déposer dans la partie gauche, celle des intentions sans famille.

Visualiser les intentions pré-construites

Un bouton « visualiser » permet d’afficher la liste des intentions pré-construites dans une fenêtre modale. On ne peut en aucun cas modifier cette liste.

NB: Le système au global peut très bien fonctionner sans familles.

2.4.5.1.3.Gestion des entités #

Créer une entité

Pour ajouter une entité, cliquez sur le bouton « créer une entité », rentrer un nom dans la boîte de texte, puis cliquer sur OK. Si le nom est valide (pas déjà existant), alors le nouvel élément sera créé.

Supprimer une entité

Pour supprimer une entité, il faut sélectionner celle-ci dans la fenêtre de configuration, puis cliquer sur le symbole de suppression qui apparaît à sa droite.

Configurer une entité

On peut modifier le nom de l’entité sélectionnée en éditant la boite de texte correspondant.

On peut gérer les rôles de l’entité:

  • ajouter un nouveau rôle
  • supprimer un rôle
  • éditer le nom du rôle

On peut gérer les groupes de formulation de l’entité:

  • ajouter un nouveau groupe
  • supprimer un groupe
  • éditer le nom du groupe et les formulations qui le composent.
    • Un bouton permet d’afficher une liste de synonymes pour vous aider.

Les formulations doivent rester uniques de façon globale pour de meilleures performances.

2.4.5.1.4.Seuils de confiance #

Lorsque la confiance du robot est en dessous du seuil de doute, il considère qu’il n’est pas possible de décider l’intention de la phrase.

Lorsque la confiance est entre le seuil de doute est celui de certitude, on peut s’appuyer sur le mécanisme de suggestion pour aider l’utilisateur à déterminer la bonne intention.

Lorsque la confiance est supérieure au seuil de certitude, le robot admet que l’intention détectée est la bonne. A noter que le seuil de doute est toujours inférieur au seuil de certitude.

2.4.5.1.5.Confirmation de saut par intention #

On peut activer un mode de confirmation des sauts par intentions.

Si tel est le cas, lorsqu’un saut par intention est détecté, cela va demander confirmation à l’utilisateur. L’utilisateur à le choix de poursuivre son action ou d’annuler, ce qui le ramènera là où il était.

On peut configurer les phrases de demande de confirmation et d’annulation.

2.4.5.2.Modèle stochastique #

2.4.5.2.1.Interface de gestion des phrases #

Pour gérer l’apprentissage par modèle stochastique du robot, on dispose de l’interface suivante :

  • La zone #1 est la liste des phrases d’entraînement. Ces phrases sont paginées et triées par intention.
  • La zone #2 comprend le bouton pour ajouter une nouvelle phrase.
  • La zone #3 permet de consulter les informations générales du jeu d’entraînement.
  • La zone #4 offre des possibilités pour filtrer la liste des phrases d’entraînement.
  • La zone #5 permet de choisir la page à afficher pour la liste des phrases.

La configuration des phrases se fait à travers la liste des phrases d’entraînement.

Ajouter une phrase

Pour ajouter une phrase, il faut cliquer sur le bouton situé en dessous de la liste des phrases d’entraînement. Cela déploie alors une interface d’édition de phrase. Il ne faut pas oublier de confirmer avec le bouton OK pour finaliser l’ajout de la phrase.

Supprimer une phrase

Pour supprimer une phrase, il faut cliquer sur le bouton de croix situé à la fin de sa ligne dans la liste des phrases d’entraînement.

Editer une phrase existante

Pour modifier une phrase, il faut cliquer sur une ligne de la liste des phrases d’entraînement. Il ne faut pas oublier de confirmer avec le bouton OK pour finaliser la modification de la phrase.

Modifier le texte d’une phrase

Le texte de la phrase se modifie en écrivant directement dans les boîtes de texte de la zone #1. A noter que si l’on a assigné des entités à des sous-parties de la phrase, cela va créer plusieurs boîtes de texte éditables. Il faut alors bien placer son curseur dans celle que l’on veut modifier.

Assigner une intention à une phrase

On peut choisir l’intention d’une phrase dans l’interface d’édition de la phrase en question. Pour cela il suffit de sélectionner l’intention dans la liste déroulante de la zone #2. La phrase sera alors automatiquement déplacée dans la section de la liste des phrases qui correspond à cette intention.

Assigner des entités à une phrase

Pour assigner un entité, il faut sélectionner une partie de la phrase dans l’interface d’édition (zone #1). Puis cliquer sur une des entités de la zone #3, elle devient alors sélectionnée, et les listes de rôle et de groupe de formulation se mettent à jour. Il faut ensuite cliquer sur un rôle et une formulation. La partie du texte qui est restée sélectionnée sera alors associée à cette entité. A noter que la partie sélectionnée va être automatiquement agrandie afin de contenir des mots entiers. Pour dissocier une entité, il faut effectuer un clic droit dessus, et choisir l’option de suppression dans le menu contextuel.

2.4.5.2.2.Edition de phrases #

Lorsque l’on est amené à éditer une phrase, on est confronté à l’interface suivante.

 

La zone #1 est le texte de la phrase.

La zone #2 permet de choisir l’intention de la phrase.

La zone #3 est une liste avec les entités utilisables pour marquer les mots de la phrase.

La zone #4 représente deux listes comportant les rôles et les groupes de formulation de l’entité sélectionnée.

La zone #5 comprend les boutons de validation et d’annulation.

Important: la sauvegarde est semi-automatique. Si l’on clique sur une autre phrase à éditer ou sur le bouton pour ajouter une nouvelle phrase, cela va sauvegarder l’édition en cours. Si l’on veut annuler l’édition en cours, il faut explicitement cliquer sur le bouton d’annulation.

2.4.5.3.Modèle déterministe #

2.4.5.3.1.Interface de gestion du DT #

Arbre déterministe

Pour interagir avec un nœud de l’arbre, il faut faire un clic droit dessus. Cela ouvre un menu contextuel permettant de choisir parmi trois options: ajouter un fils, configurer le nœud, supprimer le nœud. Il n’est pas possible de supprimer un nœud qui ne soit pas au bout de sa branche (une feuille). La racine ne peut pas être ni supprimée ni configurée.

On peut aussi cliquer sur le bouton « ajouter branche » pour créer un nouveau nœud qui part de la racine.

Le label affiché au-dessus d’un nœud est la première formulation apparaissant dans sa configuration (dans l’ordre, les formulations écrites puis les formulations des groupes de formulations réutilisés).

Survoler un nœud de l’arbre permet de mettre en surbrillance sa branche, composée de lui-même, de ses ancêtres et ses descendants.

Filtres

Il est possible de filtrer les nœuds de l’arbre pour les mettre en évidence. Il existe 2 filtres différents:

  • Le filtre par intention: colorie en vert les nœuds qui ont l’intention sélectionnée dans le tableau d’intention du filtre.
    • En cliquant sur le nombre de nœuds ayant cette intention, l’interface va effectuer un zoom sur chaque nœud, de façon cyclique.
  • Le filtre par formulation: colorie en bleu les nœuds qui sont activés par la formulation écrite dans la boîte de texte du filtre. Un nœud est activé si son intention peut-être détectée par cette formulation.

Ces deux filtres peuvent être combinés et remis à zéro (bouton reset)

Contrôles

Cette interface permet de lancer les vérifications sur la structure et les similarités dans l’arbre. Survoler le nombre de nœuds invalides permet d’afficher avec des bordures rouges les nœuds de l’arbre correspondant.

Agencements (layouts)

L’arbre déterministe dispose de deux agencements des nœuds:

  • L’agencement en arbre descendant.
    • Cet agencement cache la racine et dispose les sous-arbres en rangées afin d’améliorer la lisibilité.
  • L’agencement en arbre concentrique.

Ces deux agencements peuvent être interchangés sans conséquence sur la construction de l’arbre.

On dispose aussi d’un bouton de recadrage pour réinitialiser l’agencement sélectionné ainsi que le niveau de zoom.

2.4.5.3.2.Configuration des noeuds #

La configuration d’un noeud de l’arbre déterministe présente 2 aspects: l’intention et les formulations.

L’intention du noeud peut être choisie en la sélectionnant parmi les intentions existantes.

Pour ajouter des formulations au noeud, on peut:

  • Écrire des formulations à la main
    • Attention, les formulations de cette liste doivent rester uniques.
    • Un bouton permet d’afficher une liste de synonymes pour vous aider.
  • Utiliser des groupes de formulations déja créés dans des entités.

2.4.6.Gestion des langues #

Il est possible d’activer un robot pour reconnaître plusieurs langues.

Cela se fait dans une fenêtre depuis le panneau dépliant de la configuration d’une version.

Les éléments de configuration impactés par la langue sont :

  • L’entraînement à la compréhension
    • Le choix du modèle NLP
    • Le choix des paramètres NLP (seuil de compréhension)
    • Le choix des phrases de confirmation de saut par intention
    • L’activation des intentions et familles d’intentions par langue
    • L’ensemble des phrases pour le modèle stochastique
    • L’ensemble des nœuds de l’arbre du modèle déterministe
  • Les phrases génériques de la conversation
  • Les sauts par détection de langue.

2.4.7.Tester une version #

Accéder au mode de test

Le bouton pour pouvoir tester une version se situe dans la page de configuration de la version, dans la partie supérieure-droite.

Lorsque vous cliquez dessus, une fenêtre apparaît pour tester la version actuellement sélectionnée.

   

 

Cette fenêtre comprend :

  • Un rappel du nom de la version testée (zone #1)
  • Un premier onglet pour tester la conversation :
    • Un widget de chat (zone #2)
    • Des onglets dépliables pour afficher plus d’informations (zone #3), à savoir, de haut en bas :
      • Une liste des sous-graphes ayant activé leur saut par navigation, filtrable par leur nom.
        • Cliquer dessus permet de simuler un saut.
      • Une liste des variables avec leur valeur actuelle dans la conversation, filtrable par leur nom.
        • Les variables qui viennent de changer sont mis en surbrillance.
      • Un historique des nœuds parcourus pendant la conversation.
        • Cliquer sur un nœud permet de zoomer dessus dans le graphe.
      • Des options pour modifier le comportement du widget ou de l’interface web.
        • Activer ou non le temps d’attente entre les messages, dans le widget.
        • Faire en sorte que la vue du graphe de conversation suive le nœud actuel en permanence.
  • Un bouton avec une petite croix pour ferme la fenêtre de test (zone #4)
  • Un deuxième onglet pour tester la compréhension des phrases
    • Un choix de la langue à utiliser et un rappel du modèle NLP sélectionné (zone #5)
    • Une boîte de texte pour écrire la phrase à tester (zone #6)
      • On peut aussi choisir le nombre de suggestions maximum.
    • Les résultats du test: l’intention, les suggestions et les entités détectées (zone #7)

A noter que plusieurs sous-comptes peuvent lancer des tests en même temps sur un même robot sans créer d’interférences.

NB: lors d’un test, le nœud actuel est mis en évidence dans le graphe (bordure animée).

2.4.8.Métriques #

Pour analyser les performance du chatbot, vous disposez d’une interface de visualisation de métriques.

De la même manière que pour la page « Configuration », on peut choisir la ou les versions à visualiser avec la barre des versions.

Cependant, la liste des versions possibles dépend de la fenêtre de temps choisie en amont. En effet, seulement les versions qui disposent de métriques dans cette fenêtre de temps sont sélectionnables.

Fenêtre de temps

Pour choisir la fenêtre de temps à visualiser, il faut configurer les dates de début et de fin.

Le bouton avec le symbole « ∞ » permet de sélectionner la plus grands fenêtre de temps possible : depuis la création du robot jusqu’à la date d’aujourd’hui.

 

2.4.8.1.Résumé #

L’onglet de résumé affiche des chiffres qui correspondent aux statistiques générales de la version que l’on consulte.

On peut choisir le nombre minimum d’interactions (messages et clics sur un bouton de saut) par conversation pour ignorer les conversations trop courtes.

2.4.8.2.Graphe d'utilisation #

L’onglet du graphe d’utilisation a pour objectif de trouver facilement quelle partie du graphe sont les moins et les plus utilisées.

Pour faire fonctionner cet onglet, il faut choisir une version cible. C’est la version qui sera affichée dans le graphe à droite. Bien sûr toutes les versions sélectionnées dans la barre des versions sont utilisées pour contribuer aux statistiques d’utilisation affichées.

La liste de gauche affiche les nœuds du graphe, ordonnés par utilisation décroissante. On peut filtrer cette liste par nom et type de nœud. Il est aussi possible d’accéder rapidement à la configuration d’un nœud, et, quand cela est possible, à l’histogramme des résultats du nœud.

On peut afficher des couches d’informations supplémentaires au graphe:

  • Une carte de chaleur de l’utilisation des nœuds
  • Les pourcentages d’emprunt des sorties pour chacun des nœuds
  • Le nombre de sauts effectués vers chacun des sous-graphes, par type de sauts. Cela sera affiché au-dessus des sous-graphes.

2.4.8.3.Histogrammes #

Cet onglet affiche un histogramme représentant l’activité du robot conversationnel.

On peut interagir avec l’histogramme et choisir:

  • La donnée concernée
    • Le nombre de conversations
    • Le nombre de messages
    • Les statistiques de certains type de nœuds:
      • question oui / non: vrai ou faux
      • question à choix: le numéro du choix
      • question à intention: l’intention extraite (ou le cas où l’on n’a pas extrait d’intention)
      • embranchement: le numéro de la condition vérifiée
      • authentification: réussie ou non
      • requête externe: réussie ou non
      • liste: la sélection d’élément standard ou d’éléments additionnels (avec le numéro), ou un échec
      • live chat: le numéro de la résolution (ou le type d’erreur)
    • Les intentions détectées
      • Elles peuvent être regroupées par droit.
      • Il est possible d’aller plus loin et de sélectionner un droit pour afficher son détail.
    • Les demandes de Livechat
  • L’échelle: heure, jour, semaine, mois, toute la fenêtre temporelle sélectionnée

A noter que l’on peut survoler les barres de l’histogramme pour savoir à quoi elles correspondent.

On peut aussi exporter les statistiques dans un fichier csv en cliquant sur le bouton d’export. Cette fonctionnalité n’est utilisable que si l’échelle « période sélectionnée » est sélectionnée.

2.4.8.4.Compréhension #

Cet onglet permet de savoir comment le robot a compris les phrases prononcées par les utilisateurs.

L’intérêt est notamment de pouvoir localiser quel sont les intentions qui sont le moins bien comprises par les algorithmes de reconnaissance de langage et donc celles qui auraient besoin d’un meilleur jeu d’entrainement.

Filtres

Il existe tout un arsenal de filtres que l’on peut combiner pour aider à afficher seulement les phrases du cas qui nous intéresse.

Les différents filtres sont :

  • La situation de compréhension d’intention.
  • La situation de suggestion lié à une intention partiellement comprise.
  • Les valeurs d’intention comprises.
  • La situation d’extraction d’informations au sein de la phrase.
  • Les types des informations extraites.
  • Le choix de la langue.
  • Afficher ou non les phrases cachées.

Actions

On peut supprimer une phrase, sans que cela n’ait de conséquence sur les autres métriques.

On peut aussi juste cacher une phrase, si on ne veut pas la voir, mais sans la supprimer pour autant.

Une phrase peut être directement transférée vers le jeu d’entraînement d’une certaine version. La fenêtre de configuration du transfert offre la possibilité d’éditer le contenu de la phrase, son intention et de rajouter des entités. Par ailleurs, on peut cocher une option pour cacher ou supprimer la métrique pendant le transfert.

2.4.8.5.Conversations #

Cet onglet permet de visualiser une conversation qui a eu lieu. L’intérêt est principalement de trouver des conversations présentant des problèmes grâce aux filtres.

Filtres

Il existe trois filtres qui peuvent être combinés:

  • La présence d’une erreur d’un certain type.
    • Échec de compréhension: lié à la mauvaise compréhension d’une intention par le bot.
    • Échec technique: une requête externe ou une authentification a échoué.
    • Échec de live chat: une demande de prise en charge n’a pas pu être traitée par un opérateur.
  • La présence d’un résultat de noeud de notation avec un score allant de 1 à 5.
  • Le choix de la langue.

En plus de ça, on peut directement chercher une conversation si on connaît son ID.

2.4.9.Optimisation #

Une fois que votre robot conversationnel est configuré et déployé en production, vous pouvez passer à la phase d’optimisation.

Pour cela il vous faut créer un projet d’optimisation sur la plateforme Robo Fabrica afin d’évaluer les performances réelles de votre robot. Une fois que cette évaluation est faite, vous pouvez créer une nouvelle version de votre chatbot afin d’améliorer les performances de compréhensions. En effet, après avoir effectué des modifications sur votre nouvelle version, vous pouvez accéder à un panel permettant d’évaluer cette nouvelle version et de la comparer avec la version actuellement en production.

2.4.9.1.Projets d'optimisation #

La page d’optimisation présente les zones suivantes:

  • Zone #1: La liste des projets d’optimisation et le bouton permettant de créer un nouveau projet. On peut sélectionner un projet pour afficher ses informations dans les zones 2 à 4.
  • Zone #2: Les informations générales du projet.
    • Son nom et sa description (éditables).
    • La version du robot utilisée pour annoter les phrases (éditable). Cette version concerne les intentions utilisées lors de l’annotation.
    • Le bouton de suppression du projet.
      • Attention: Supprimer un projet supprime aussi son annotation et les rapports d’optimisation qui ont été faits avec.
    • Un bouton « ? » pour accéder à plus d’informations sur la création du projet: date, population, paramètre d’optimisation…
  • Zone #3: Les informations concernant l’annotation des phrases
    • Savoir si l’annotation est terminée ou non (s’il reste des phrases à annoter). Une barre de complétion nous indique le pourcentage de phrase annotée.
    • Les statistiques liées à l’annotation, vis-à-vis de la compréhension des phrases qui forment l’échantillon.
    • Le bouton « annotation rapide » permet d’ouvrir une fenêtre modale, où l’on est ameneé à annoter plus facilement les phrases qui ne sont pas encore annotéeq.
  • Zone #4: La liste des phrases à annoter.
    • La liste est paginée, et peut être filtrée par type d’annotation et par intention d’annotation.

Création de projet

Lors de la création du projet, il vous sera demandé:

  • Le nom et la description du projet.
  • La méthode de création: à partir des métriques ou à partir d’un fichier CSV
  • La version à utiliser pour créer l’échantillon.
    • Les métriques de compréhension de cette version seront utilisées.
    • Cette version permet aussi de simuler des pseudo-métriques pour la création à partir d’un CSV.
  • Le choix de la langue du projet.
    • Cela va aussi déterminer la langue des phrases de métriques que l’on va utiliser.
  • Si l’on veut créer partir des métriques, il faudra choisir:
    • La période à utiliser pour créer l’échantillon. Elle dépend de la version choisie, et détermine la taille de la population de l’échantillon, c’est-à-dire le nombre maximum de phrases utilisables.
    • La marge d’erreur et le seuil de confiance souhaité.
      • En fonction de la population et de ces paramètres, la taille effective minimum de l’échantillon est calculée.
      • On peut choisir si l’on veut inclure ou non toutes les phrases d’erreur dans l’échantillon.
      • On peut aussi court-circuiter le calcul global et prendre toute la population disponible.
  • La version utilisée lors de l’annotation de l’échantillon. Cette version peut être changée par la suite si nécessaire.

Annotation

Pour changer l’annotation d’une phrase, il faut cliquer dessus dans la liste, puis modifier la configuration de l’annotation, puis valider.

Important: la sauvegarde est semi-automatique. Si l’on clique sur une autre phrase à annoter, cela va sauvegarder l’édition en cours. Si l’on veut annuler l’édition en cours, il faut explicitement cliquer sur le bouton d’annulation.

2.4.9.2.Rapports d'optimisation #

Pour accéder au panel d’optimisation, il faut cliquer sur le bouton « Optimiser », disponible dans la page de « Configuration ».

Ce panel comprend:

  • Zone #1: La liste de rapport d’optimisation pour chaque projet.
    • Couleur des rapports:
      • Les rapports en blanc sont sans particularités.
      • Les rapports en gris bleuté sont obsolètes, c’est-à-dire que le projet a été modifié après la création du rapport. Ces rapports sont ignorés pour tous les calculs qui ont lieu dans ce panel.
      • Les rapports en rouge ont un taux d’erreur supérieur à un rapport antérieur.
      • Les rapports en vert ont un taux d’erreur inférieur à un rapport antérieur (ils peuvent posséder des régressions).
      • Les rapports en orange possèdent juste des régressions par rapport à un rapport antérieur, mais il n’y a rien de concluant vis-à-vis de leur taux d’erreur.
    • On peut lancer un nouveau rapport en cliquant sur le bouton « + » à la fin d’une ligne correspondant à un projet. Il vous sera alors demandé le nombre maximum de suggestions autorisées.
      • On peut utiliser le bouton « tout lancer » pour lancer un rapport pour chaque projet dont l’annotation est complète.
    • On peut sélectionner un ou plusieurs rapports.
      • On ne peut sélectionner qu’un seul rapport par projet.
    • On peut effectuer un clic droit pour supprimer un rapport.
  • Zone #2: Quelques boutons
    • Visualiser la sélection
      • Lorsque l’on visualise un ou plusieurs rapports, le détail de leur résultat apparaît dans les zones 3 à 6.
    • Sélectionner tous les rapports les plus récents (un par projet complètement annoté).
    • Réinitialiser la visualisation et sélection.
  • Zone #3: Les informations générales du ou des rapports.
    • La date de lancement, le nom du projet et le nombre de suggestions autorisées.
    • Un indicateur du nombre de régressions vis-à-vis de rapport précedants.
    • Le type de création: automatique ou manuelle.
  • Zone #4:
    • Un bouton pour exporter les résultats en CSV.
    • Un bouton pour supprimer le rapport (seulement disponible si on visualise un seul rapport).
    • Un autre bouton pour réinitialiser la visualisation.
  • Zone #5: Les statistiques des résultats, en comparaison avec l’annotation de l’échantillon du projet.
    • Un bouton permet de réduire la taille de cette zone pour avoir plus de place pour le tableau des résultats par phrases (zone #6).
  • Zone #6: Le détails des résultats de chacune des phrases du projet, sous la forme d’un tableau.
    • Ce tableau peut être paginé, et filtré par catégorie de résultat.
    • On peut n’afficher que les phrases avec des régressions en cochant le filtre correspondant.
    • Si on survole le « R » des lignes avec une régression, les rapports qui avaient un meilleur résultat, se mettent à clignoter dans le tableau des rapports par projet.

2.4.9.3.Automatisation #

La page d’automatisation de l’optimisation comprend:

  • Zone #1:
    • L’interrupteur pour activer l’automatisation.
    • Un indicateur de validité globale de la configuration.
      • Si la configuration est invalide, du texte en rouge apparaîtra aux endroits de la configuration concernés.
  • Zone #2: La configuration de l’automatisation
    • On peut choisir la façon dont l’optimisation va se déclencher.
      • Avec un timer, pour déclencher sur des délais fixes.
      • Lorsque l’on dépasse un certain nombre de phrases pertinentes (suggestion sélectionnée avec succès).
    • Il faut configurer les projets utilisés.
      • Ces projets doivent avoir une annotation complète.
    • On peut choisir le nombre de suggestions maximum autorisées lors de la création des rapports.
  • Zone #3: La liste des résultats de l’automatisation.
    • Ces résultats sont classés du plus récent au plus ancien.
    • On peut sélectionner un résultat pour afficher son détail dans la zone 4
  • Zone #4: Le détail d’un résultat d’optimisation
    • Des informations globales sur la création de ce résultat et sur sa réussite globale.
    • Le nombre de phrases créées et ajoutées dans le jeu d’entraînement du modèle stochastique.
    • Le détail par rapport (un rapport par projet). On peut accéder directement à la visualisation de chaque rapport.
    • Un bouton permettant de visualiser la synthèse de l’ensemble des rapports composant ce résultat d’automatisation.

Principe de l’automatisation

Robo Fabrica vérifie une fois par jour, pour chaque robot activé, si l’automatisation est activée et bien configurée et si les conditions sont remplies pour pouvoir lancer une optimisation automatique. Ces conditions dépendent des déclencheurs configurés.

Le déroulement d’une optimisation automatique d’un robot est le suivant:

  1. On doit d’abord créer une nouvelle version à partir de la version actuellement déployée. Le reste des étapes se passera dans cette version.
  2. Dans la configuration de cette version, on sélectionnera le modèle hybride pour le NLP.
  3. Ensuite, pour chacun des projets d’optimisation utilisés (dans la configuration), on va créer un premier rapport d’optimisation qui servira par la suite de point de référence.
  4. On ajoute les phrases pertinentes extraites des métriques au jeu d’entraînement du modèle stochastique. Ces phrases sont celles qui ont été comprises grâce aux suggestions, donc grâce à la confirmation de l’utilisateur. (Après cette étape, la version est verrouillée)
  5. On crée un nouveau rapport pour chaque projet utilisé.
  6. On calcule alors les régressions entre ce dernier rapport et le premier (étape 3).
  7. Si on n’a pas de régression, on déploie la version créée à l’étape 1 en production.
Suggérer  de  modifier