Documentation robo fabrica

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.

Dernière   mise à jour   sur 03/01/2019

1.1.Compréhension du langage #

Pour pouvoir comprendre le langage, le programme doit être entraîné grâce des méthodes de « Machine Learning ».

Pour cela, il apprend comment se déroule les conversations en général à partir d’un jeu de données labellisées comprenant des phrases reliées avec l’intention qu’elles représentent.

Ainsi, lorsque l’interlocuteur s’adresse à lui, il réussit, via des méthodes probabilistes, à retrouver quelle est l’intention la plus probable correspondant à cette phrase.

Dernière   mise à jour   sur 03/01/2019

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

Dernière   mise à jour   sur 03/01/2019

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

 

 

 

Dernière   mise à jour   sur 03/01/2019

1.2.1.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 à 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 au type du nœud parent 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.

Dernière   mise à jour   sur 03/01/2019

1.2.1.2.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 (ex: Telegram). 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.

Dernière   mise à jour   sur 03/01/2019

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

Dernière   mise à jour   sur 03/01/2019

1.2.2.Les noeuds #

Le principal élément qui compose un graphe est le nœud. Il existe différents types de nœuds ayant tous leur rôle dans la conversation et leur manière d’être configuré. Les nœuds peuvent être reliés entre eux par des liens de parenté.

Vous pouvez configurer à travers les nœuds les phrases écrites par le bot. Ces phrases peuvent comprendre :

  • du texte (taille maximum: 250 caractères)
  • des variables
  • des liens url
  • des liens pour afficher / télécharger des documents hébergés sur la plateforme Robo Fabrica

Ces phrases sont limitées à 20 morceaux de phrase.

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

Dernière   mise à jour   sur 03/01/2019

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

Il n’a qu’un seul fils.

Dernière   mise à jour   sur 03/01/2019

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

Ce nœud n’a pas de fils.

Dernière   mise à jour   sur 03/01/2019

1.2.2.3.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 fils, qui correspondront aux réponses positives et négatives.

Dernière   mise à jour   sur 03/01/2019

1.2.2.4.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 avoir autant de fils que de choix possibles.

Dernière   mise à jour   sur 03/01/2019

1.2.2.5.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 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.
  • 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, avec le format dd/mm/yyyy
  • Heure : extraction d’heure, avec le format hh:mm

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

Ce nœud n’a qu’un seul fils.

Dernière   mise à jour   sur 03/01/2019

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

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

Ce nœud a un nombre de fils égal au nombre d’intentions possibles plus un. En mode suggestion, la dernière sortie correspond au cas où l’utilisateur sélectionne la suggestion correspondant à “rien ne convient”. Si le mode suggestion n’est pas activé, alors la dernière sortie sera prise dès que l’agent ne comprendra pas l’intention de l’utilisateur.

Dernière   mise à jour   sur 03/01/2019

1.2.2.7.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. Si aucune condition n’est vérifiée, on emprunte la branche par défaut.

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 a un nombre de fils égal au nombre de conditions plus un.

Dernière   mise à jour   sur 03/01/2019

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

Ce nœud n’a qu’un seul fils, et n’écrit pas de message.

Dernière   mise à jour   sur 03/01/2019

1.2.2.9.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
Dernière   mise à jour   sur 03/01/2019

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

Dernière   mise à jour   sur 03/01/2019

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

Les différents types des données que l’on manipule sont :

  • 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
Dernière   mise à jour   sur 03/01/2019

1.2.4.Autres #

Dernière   mise à jour   sur 03/01/2019

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

Dernière   mise à jour   sur 03/01/2019

1.2.4.2.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
Dernière   mise à jour   sur 03/01/2019

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

Dernière   mise à jour   sur 03/01/2019

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.

Dernière   mise à jour   sur 03/01/2019

2.Plateforme web #

Dernière   mise à jour   sur 03/01/2019

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.

Dernière   mise à jour   sur 03/01/2019

2.2.Plan de la plateforme #

Dernière   mise à jour   sur 03/01/2019

2.3.Votre compte administrateur #

Dernière   mise à jour   sur 03/01/2019

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.

Dernière   mise à jour   sur 03/01/2019

2.3.2.Page de profil #

Informations basiques

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.

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
  • Activer ou désactiver un compte opérateur

Un compte opérateur peut uniquement utiliser les pages de “configuration” et de consultation des “métriques” pour les agents. Il ne peut en aucun cas effectuer une action qui viendrait mettre en péril l’état du service.

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.

Dernière   mise à jour   sur 03/01/2019

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.

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.

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

Lorsque l’on survole au-dessus du bloc d’un agent, des informations complémentaires 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
Dernière   mise à jour   sur 03/01/2019

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.

Dernière   mise à jour   sur 03/01/2019

2.4.Configurer un agent conversationnel #

Dernière   mise à jour   sur 03/01/2019

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

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.

Dernière   mise à jour   sur 03/01/2019

2.4.2.Créer & Supprimer une version #

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.

Pour créer une version, appuyez sur le bouton “créer une version”. 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.

Les informations affichées à droite correspondent à la version sélectionnée. On peut modifier le nom de la version et sa description. La date de création est aussi affichée, ainsi que la version à partir de laquelle la version sélectionnée a été créée. 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.

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. Il en est de même pour la page “Métriques”, où l’on choisi la version dont on consulte les statistiques via cette barre.

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.

Dernière   mise à jour   sur 03/01/2019

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 :

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

Dernière   mise à jour   sur 03/01/2019

2.4.3.1.Telegram #

Pour connecter un agent à Telegram, il faut suivre les instructions du guide de création de bot Telegram, et enregistrer le token correspondant dans la configuration du connecteur.

En résumé, il faut :

  • Parler à BotFather, et lui écrire la commande /newbot .
  • Ecrire le nom du bot.
  • Ecrire le pseudo du bot (son identifiant).
  • Recuperer le token donné dans la réponse de BotFather, et l’enregistrer dans le configuration du connecteur sur la plateforme Robo Fabrica.
Dernière   mise à jour   sur 03/01/2019

2.4.3.2.Widget intégrable #

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

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
  • L’activation de la suppression automatique de l’historique des conversations lorsqu’elles sont terminées

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.

Dernière   mise à jour   sur 29/01/2019

2.4.4.Le graphe de conversation #

Dernière   mise à jour   sur 03/01/2019

2.4.4.1.Général #

 

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 variables
  • Les phrases génériques

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.

Dernière   mise à jour   sur 03/01/2019

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
Dernière   mise à jour   sur 03/01/2019

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

Dernière   mise à jour   sur 03/01/2019

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, un numéro apparaît lorsque l’on survole un point d’accroche et son interprétation est liée à la configuration du nœud. De manière générale, les numéros commencent à 1 et vont de gauche à droite.

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.

Dernière   mise à jour   sur 03/01/2019

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

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.

Dernière   mise à jour   sur 03/01/2019

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

Dernière   mise à jour   sur 03/01/2019

2.4.5.Apprentissage #

Dernière   mise à jour   sur 03/01/2019

2.4.5.1.Interface #

Pour gérer l’apprentissage de l’agent, on dispose de l’interface suivante :

La zone #1 est la liste des phrases d’entraînement. Ces phrases sont classées par intention.

La zone #2 comprend le bouton pour ajouter une nouvelle phrase.

La zone #3 permet d’accéder à la gestion des entités et intentions.

La zone #4 permet de consulter l’historique des modifications apportées aux phrases d’entraînement, et d’accéder à l’interface de tests avancés du jeu d’entraînement.

La zone #5 offre des possibilités pour filtrer la liste des phrases d’entraînement.

La zone #6 permet de changer les seuils de confiance qui seront utilisés pour la compréhension des intentions.

Dernière   mise à jour   sur 03/01/2019

2.4.5.2.Gestion du jeu d'entraînement #

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

Interface d’édition d’une phrase

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

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

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.

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

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

Dernière   mise à jour   sur 03/01/2019

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

Attention: Lorsque l’on supprime une intention ou une entité, elle disparaît de toutes les phrases qui l’utilisaient, et aussi de la configuration du graphe. Il est possible que cela rende le graphe invalide.

Dans le cas ou l’on supprime une intention, les phrases qui lui étaient associées deviennent sans intention.

Renommer une intention / entité

Pour renommer une intention ou une entité, il faut sélectionner celle-ci dans la fenêtre de configuration, puis modifier le nom dans la boîte de texte qui apparaît à sa droite

Dernière   mise à jour   sur 03/01/2019

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

Dernière   mise à jour   sur 03/01/2019

2.4.5.5.Historique des modifications #

Cette fenêtre permet de savoir quand des modifications du jeu d’entraînement ont été réalisées et avec quel compte.

Les modifications comprennent:

  • Ajout, suppression ou édition de phrase
  • Ajout, suppression ou édition d’intention
  • Ajout, suppression ou édition d’entité
Dernière   mise à jour   sur 03/01/2019

2.4.5.6.Interface de tests avancés #

Cette interface est composée des zones suivantes :

  • Zone #1 : Un tableau contenant les phrases à tester ainsi que l’intention attendue.
  • Zone #2 : Un bouton pour ajouter une nouvelle ligne dans le tableau, et une fonctionnalité d’import de phrases depuis un fichier CSV. Ce fichier doit respecter un format indiqué dans l’infobulle (à droite du bouton d’import).
  • Zone #3 : Un ensemble de paramètre liés à l’exécution du test
    • Le nombre de suggestions autorisées lorsque l’agent doute sur l’intention détectée.
    • Les seuils de doute et de certitude
  • Zone #4 : Permet de naviguer entre les différents onglets de la fenêtres: les phrases à tester et les résultats des tests.
  • Zone #5 : Bouton pour lancer les tests. En fonction du nombre de tests à effectuer cela peut prendre un certain temps.
  • Zone #6 : Bouton pour exporter les phrases de test dans un fichier CSV qui peut être à nouveau importé ultérieurement.
Dernière   mise à jour   sur 03/01/2019

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.

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.

Dernière   mise à jour   sur 03/01/2019

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 naviguer entre les différentes versions avec la barre des versions.

Dernière   mise à jour   sur 03/01/2019

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.

Dernière   mise à jour   sur 03/01/2019

2.4.7.2.Courbes #

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
  • Les dates de début et de fin
  • L’échelle: heure, jour, semaine, mois

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

 

Dernière   mise à jour   sur 03/01/2019

2.4.7.3.Compréhension #

Cet onglet permet de savoir comment l’agent a compris les phrases prononcées par les utilisateurs finaux.

On peut filtrer la recherche par intention.

L’intérêt de cet onglet 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.

Ces phrases peuvent être supprimées sans conséquence sur les autres métriques.

Elles peuvent aussi être directement transférées vers le jeu d’entraînement d’une certaine version. Pour cela, il faut cliquer sur le bouton situé tout à droite de la ligne pour la phrase concernée. Une fenêtre s’affiche alors, offrant la possibilité d’éditer le contenu de la phrase et l’intention liée. Par ailleurs, on peut cocher une option pour supprimer la métrique pendant le transfert.

Dernière   mise à jour   sur 03/01/2019
Suggérer  de  modifier