1. Les agents conversationnels
    1. Compréhension du langage
    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 noeud d'authentification
        12. Le nœud de sélection par liste
        13. Le nœud de prise en charge de demande
      3. Les sous-graphes
        1. Les sauts par navigation
        2. Les sauts par intention
      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 agents 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 agents
      4. Gestion des ressources
      5. Prise en charge des demandes
        1. Gestions des disponibilités
        2. Traitement des demandes
      6. Historique des opérations
    4. Configurer un agent conversationnel
      1. Etat et Déploiement
      2. Les versions
        1. Gestion des versions
        2. Barre des versions
      3. Les connecteurs
        1. Widget intégrable
      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 schémas de carrousel
        8. Validité du graphe
      5. Apprentissage
        1. Généralités sur l'apprentissage
          1. Choix du modèle
          2. Gestion des intentions et entités
          3. Seuils de confiance
        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. Tester une version
      7. Métriques
        1. Résumé
        2. Graphe d'utilisation
        3. Histogrammes
        4. Compréhension
      8. Optimisation
        1. Projets d'optimisation
        2. Runs d'optimisation

1.Les agents conversationnels #

Un agent 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 agents 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.2.Graphe de conversation #

La formalisation du dialogue avec un agent 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

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 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, il existe une certaine mécanique propre à son type de nœud permettant de déterminer quel enfant va lui succéder. Pour plus d’informations sur les règles liées à chaque 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 ce faire il faut être capable d’éditer ses phrases à morceaux.

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 principalement de la réponse de l’utilisateur, et/ou 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:

  • Pas de phrase.
  • Phrase à morceau personnalisable.
  • Phrase générique, dont la catégorie dépend du type de sortie.

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. Chaque message sera affiché dans un bulle différente par le bot.

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 :

  • Explicite : 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 sortie standard, et d’une autre sortie, 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.

Ce nœud dispose d’un option supplémentaire: l’Extraction intelligente. Lorsque qu’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é.

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, l’agent va proposer à l’utilisateur un certain nombre de suggestions, parmi les intentions qui correspondent le mieux. Il est possible de configurer le nombre de suggestions, ainsi que la manière dont l’agent va les proposer à l’utilisateur.

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.

1.2.2.8.Le nœud d'embranchement #

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

L’agent 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

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 opérandes en argument, et va enregistrer son résultat dans une variable. Ces opérandes 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 opérandes et R la variable pour enregistrer le résultat.

  • Affectation (pas d’opération): R = O1
  • Addition: R = O1 + O2

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 l’agent
  • api_spec_user_id : identifie l’utilisateur final, qui converse avec l’agent

1.2.2.11.Le noeud 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 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.

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

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

Ce nœud permet de proposer un ensemble de choix à l’utilisateur. L’agent 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 schéma de carrousel.
    • Une fois le schéma choisi, on peut associer les champs du schéma de carrousel avec les champs des éléments (composites) de la liste.

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 prise en charge de demande #

Ce nœud permet à l’utilisateur de créer une demande de prise en charge par un opérateur humain. L’agent 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.

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.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 telles que « Bonjour » ou « Merci ».

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 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.

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 agents et déploiement #

Les agents 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’agent 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 agent 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 agent puisse être utilisable, il est nécessaire de l’activer. On ne peut activer un agent 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 à (version à déterminer)
  • 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 agents #

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

Créer un agent

Pour créer un nouvel agent, cliquez sur le bouton « créer un agent ». Il vous sera alors demandé de rentrer un nom et une description pour cet agent. 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 agents d’un simple coup d’œil. A noter que dans un souci de clarté, les noms des agents doivent être uniques.

Liste des agents

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

  • Une icône indiquant si l’agent est actif (rempli) ou inactif (creux).
  • Le nom de l’agent.

Lorsque l’on sélectionne un agent, 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ù l’agent 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 de l’agent.
  • Un bouton pour supprimer l’agent.

Attention, il est impossible de supprimer un agent 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 agent en double-cliquant dessus.

Limitations sur les agents

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

2.3.4.Gestion des ressources #

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 agents 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 agents.

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. A noter que le nom du document 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 agents.

2.3.5.Prise en charge des demandes #

Il est possible d’accéder à la gestion de demandes d’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 agents en y insérant des nœuds de prise en charge.

2.3.5.1.Gestions des disponibilités #

Un opérateur peut gérer pour quels nœuds de quels agent il est disponible.

Dans le modal de gestion des disponibilités, seulement les agents actifs possédant des nœuds de prise en charge 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.

2.3.5.2.Traitement des demandes #

Lorsque l’on sélectionne une demande, la conversation avec l’utilisateur est affichée sur la partie droite de l’écran dans un widget en mode spectateur.

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é.

Interagir avec une demande en traitement

Voici les actions possibles:

  • Envoyer un message à l’utilisateur.
  • Envoyer un lien à l’utilisateur.
  • Clore la conversation, en choisissant une des options de fermeture, que l’on a défini dans le nœud de prise en charge correspondant à la demande en cours.

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:

  • Ajout, suppression ou édition de phrase
  • Ajout, suppression ou édition d’intention
  • Ajout, suppression ou édition d’entité

2.4.Configurer un agent conversationnel #

2.4.1.Etat et Déploiement #

La principale utilité de cette page est de pouvoir choisir la version de l’agent à 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 l’agent avec un interrupteur.

Cette page permet aussi de consulter et de modifier des paramètres globaux de l’agent :

  • Le nom
  • La description
  • L’activation de la suppression automatique de l’historique des conversations lorsqu’elles sont terminées

Attention: le changement de version et la désactivation d’un agent 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.

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 la version qui est actuellement déployée. On ne peut pas non plus supprimer une version s’il n’y a plus que celle là de disponible.

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 agent peut être déployé sur différents canaux de communications, 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érentes connecteurs disponibles pour le moment sont :

  • Widget intégrable

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 bas 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 l’agent.

Personnalisation du widget

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

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

  • Le style général, pour des formes plus arrondies ou carrées
  • Le nom du bot
  • L’avatar du bot
  • La police d’écriture et sa taille
  • Les couleurs des différents composants du widget
  • L’intensité de l’ombre portée sous le widget
  • La taille par défaut du widget à son ouverture: normale, large ou pleine page

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.

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) comporte les éléments graphiques à 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 schémas de carrousel

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 deux plus petites zones #4 et #5. La zone #4 comporte des informations sur la validité du graphe. La zone #5 affiche des boutons qui facilitent la manipulation du graphe.

Interactions

Pour se déplacer dans le graphe, il faut saisir le fond de la zone d’édition avec 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.

Pour faire apparaître les étiquettes des nœuds (leur nom), il faut cocher la case correspondante dans la zone #5.

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.

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).

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.

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″).

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éé. A 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 symbole 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.

Aller au fils

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, et sélectionner l’option « Aller au fils ».

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 maximum: 250 caractères)
  • des variables
  • des liens url
  • 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)

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

Sur la gauche, les différents morceaux qui composent la phrase sont affichés, sous forme de ligne de texte, avec une icône, représentant leur type, et leur valeur.

  • Pour configurer un morceau, il faut cliquer 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.
  • Il est possible de réordonner les morceaux en effectuant un glisser-déposer.

Pour ajouter un morceau, il faut cliquer sur un des boutons affichés sur la droite. Chaque symbole représente un type de morceau. A noter que certaines phrases à morceaux n’ont accès qu’à un sous-ensemble réduit de types de morceaux.

Remarque: Les phrases à morceaux sont limitées à 20 morceaux.

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.

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 en dessous 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 schémas de carrousel #

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

La zone #1 comporte la liste des différents schémas, et un bouton pour ajouter un nouveau schéma.

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

La zone #3 permet d’éditer à proprement parler le schéma:

  • Création d’emplacements de texte ou d’image.
  • Edition du style des emplacements.

A noter qu’une image apparaîtra toujours en dessous d’un texte, en cas de chevauchement.

La zone #4 propose une prévisualisation d’une carte de carrousel fictive, respectant le schéma en cours d’édition.

2.4.4.8.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, …).

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.

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.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.

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 et le modèle déterministe. Le modèle choisi devra être configuré dans l’onglet correspondant.

Les deux modèles possibles utilisent les mêmes intentions et entités definies de manière globale.

2.4.5.1.2.Gestion des intentions et entités #

Pour accéder à la configuration des entités ou intentions, il faut cliquer sur les boutons correspondants. Une fenêtre apparaît alors, elle contient tout ce dont vous avez besoin pour administrer les entités ou les intentions.

Créer une intention / entité

Pour rajouter une intention ou une entité, vous pouvez rentrer un nom dans la boîte de texte située en bas de la fenêtre de configuration, puis cliquer sur OK. Si le nom est valide (pas déjà existant), alors le nouvel élément sera créé.

Supprimer une intention / entité

Pour supprimer une intention ou 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 intention

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

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.

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

Cas des suppressions

Attention: Lorsque l’on supprime une 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.3.Seuils de confiance #

Lorsque la confiance de l’agent 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, l’agent 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.2.Modèle stochastique #

2.4.5.2.1.Interface de gestion des phrases #

Pour gérer l’apprentissage par modèle stochastique de l’agent, 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.

Interface d’édition d’une phrase d’entraînement

 

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.

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 noeud 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 noeud, supprimer le noeud. Il n’est pas possible de supprimer un noeud qui ne soit pas au bout de sa branche (une feuille). La racine ne peut pas être ni supprimée ni configurée. Le label affiché au-dessus d’un noeud 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).

Filtres

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

  • Le filtre par intention: colorie en bleu les noeuds qui ont l’intention sélectionnée dans le tableau d’intention du filtre.
  • Le filtre par formulation: colorie en vert les noeuds qui sont activés par la formulation écrite dans la boîte de texte du filtre. Un noeud 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.

Agencements (layouts)

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

  • L’agencement en arbre descendant.
  • 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 reset 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
  • Utiliser des groupes de formulations déja créés dans des entités.

2.4.6.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.

Interface de test du widget

Cette fenêtre comprend :

  • Un widget de chat (zone #1)
  • Un rappel du nom de la version testée (zone #2)
  • Des boutons permettant de naviguer entre les sous-graphes autorisant les sauts par navigation (zone #3)
  • Des options pour modifier le comportement du widget, dans le cadre du test uniquement (zone #4)
    • Activer ou non le temps d’attente entre les messages

Pour fermer cette fenêtre, il suffit de cliquer sur le bouton de fermeture du widget.

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

Simuler des sauts par navigation

Lors de l’exécution d’un test, on peut simuler des sauts par navigation en cliquant sur les boutons de la zone #3. Seulement les boutons des sous-graphes ayant activé leur saut par navigation apparaissent.

2.4.7.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.

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 grand fenêtre de temps possible pour les versions en cours de visualisation. Cela correspond, en pratique, à la période entre la plus ancienne date de création de version jusqu’à la date d’aujourd’hui.

2.4.7.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 de messages par conversation pour ignorer les conversations trop courtes.

2.4.7.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 couche d’information supplémentaire au graphe:

  • Une carte de chaleur de l’utilisation des nœuds
  • Les pourcentage d’emprunt des sorties pour chacun des nœuds

2.4.7.3.Histogrammes #

Cet onglet affiche un histogramme représentant l’activité de l’agent conversationnel.

On peut interagir avec l’histogramme et choisir:

  • La donnée concernée
    • Le nombre de conversation
    • 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
  • 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.7.4.Compréhension #

Cet onglet permet de savoir comment l’agent 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.
  • 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.Optimisation #

Une fois que votre chatbot 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 agent conversationnel. 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.8.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 à 5.
  • Zone #2: Les informations générales du projet.
    • Son nom et sa description (éditables).
    • Les informations de création (date et plus de détails en cliquant sur le bouton « ? »).
    • Les paramètres d’optimisation du projet (décidés à la création).
  • Zone #3: Les informations concernant l’annotation des phrases.
    • La version de l’agent utilisé pour annoter les phrases (éditable). Cette version concerne les intentions utilisées lors de l’annotation.
    • Savoir si l’annotation est terminée ou non (s’il reste des phrases à annoter).
    • Les statistiques liées à l’annotation, vis-à-vis de la compréhension des phrases qui forment l’échantillon.
  • Zone #4: Le bouton de suppression du projet.
    • Attention: Supprimer un projet supprime aussi son annotation et les runs d’optimisation qui ont été faites avec.
  • Zone #5: La liste des phrases à annoter.
    • La liste est paginée, et peut être filtrée par type d’annotation et par intention d’annotation.
    • Pour changer l’annotation d’une phrase, il faut cliquer dessus dans la liste, puis modifier la configuration de l’annotation, puis valider.

Création de projet

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

  • Le nom et la description du projet.
  • La version à utiliser pour créer l’échantillon. Les métriques de compréhension de cette version seront utilisées.
  • 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 de l’échantillon est calculée.
    • On peut court-circuiter ce calcul et prendre toute la population disponible en cochant l’option correspondante.
  • La version utilisée lors de l’annotation de l’échantillon. Cette version peut être changée par la suite si nécessaire.

2.4.8.2.Runs 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 runs d’optimisation pour chaque projet.
    • Les runs en gris sont obsolètes, c’est-à-dire que le projet a été modifié après la création du run.
    • Les runs en rouge possèdent des régressions par rapport à un run antérieur.
    • On peut lancer un nouveau run en cliquant sur le « + » à la fin d’une ligne correspondant à un projet. Il vous sera alors demandé le nombre maximum de suggestions autorisées.
    • Si l’on sélectionne un run, le détail de son résultat apparaît dans les zones 2 à 4.
  • Zone #2: Les informations résumées du run.
    • La date de lancement, le nom du projet et le nombre de suggestions autorisées.
    • Les statistiques des résultats, en comparaison avec l’annotation de l’échantillon du projet.
  • Zone #3: Le bouton de suppression du run.
  • Zone #4: 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, le run qui avait un meilleur résultat, se met à clignoter dans le tableau des runs par projet.
Suggérer  de  modifier