Tout ce qu’il faut savoir à propos de l’Intelligence Artificielle sur Botnation : Les Fonctionnalités Avancées

Partie 5 sur 8

3.1 Les Contextes

Définition :
La définition du dictionnaire donne “Ensemble des circonstances dans lesquelles se produit un événement”. Dans le cadre de notre IA, le sens est le même et dans la pratique c’est un sous-ensemble de règles d’IA que l’on associe à une partie de son chatbot. Votre ChatBot aura donc des IA différentes selon le contexte de la discussion.

C’est aussi un bon moyen d’organiser les règles par thème.

Exemple:
Dans le cas de notre ChatBot Immobilier, on pourrait avoir des contextes spécifiques pour “Achat”, “Vente”, “Location” et “Financement”.

Pour activer les Contextes sur son chatbot, il faut le faire dans les paramètres avancés.

Le contexte principal est le “contexte par défaut”. Nous appelons “Contextes Secondaires” les contextes supplémentaires que vous créez.

Le contexte par défaut doit toujours rester le contexte principal du chatbot.

Pour qu’un Contexte Secondaire soit pris en compte/sauvegardé, il faut qu’il contienne au moins une règle d’IA.

On associe un Contexte à une séquence dans les paramètres de la séquence (accès par la roue crantée tout à droite dans la barre de titre de la séquence en question).

Les règles d’un contexte s’appliquent dès qu’une séquence auquel il est associé se déclenche.

Dans un contexte, si aucune séquence par défaut n’est définie, si l’IA ne trouve pas de règle correspondante dans ce contexte elle lance une recherche dans le contexte par défaut. Et s’il n’y a toujours pas de règle correspondante dans le contexte par défaut, c’est bien la réponse par défaut du contexte par défaut qui s’affiche.

Si une séquence par défaut a été définie dans le contexte secondaire :
Recherche dans l’IA du contexte secondaire -> si pas de réponse -> Réponse par défaut du contexte secondaire.

Si une séquence par défaut n’a pas été définie dans le contexte secondaire :
Recherche dans l’IA du contexte secondaire -> si pas de réponse -> Recherche dans l’IA du contexte par défaut -> si pas de réponse -> Réponse par défaut du contexte par défaut.

TIPS :
Les mots-clés Prioritaires sont très utiles pour sortir d’un Contexte.

Avant de découvrir les Tunnels, nous allons faire un focus sur une fonctionnalité très utile dans la gestion des mots clés : les Librairies de mots.

Aide en ligne :
Introduction aux contextes
Cas pratique d’utilisation des contextes


3.2 Les Librairies de mots

Définition :
Ce sont des ensembles de mots que vous pouvez sauvegarder et utiliser comme mots-clés dans plusieurs chatbots et/ou dans différents contextes au sein du même bot.

La gestion des Librairies se fait dans l’onglet IA de votre chatbot.

Pour en créer une, faites une liste de Mots Clés ou Expressions comme si c’était une règle d’IA classique mais sans Mots Clés Prioritaires ou Expressions Négatives. Vous pourrez ensuite l’ajouter à n’importe quelle règle d’IA de vos bots.

A savoir : les modifications sont prises en compte partout où la Librairie est utilisée.

Cette fonctionnalité est particulièrement pratique quand on gère différents bots qui ont la même thématique.

Exemple:
Vous êtes une agence digitale spécialisée dans l’immobilier.


Vous créez les Librairies suivantes:

Et vous pourrez utiliser ces Librairies dans tous les bots qui ont besoin d’identifier ces types de biens.

Et cela fonctionne aussi d’un canal à l’autre. Vous pouvez utiliser vos librairies sur vos chatbots Web et Messenger indifféremment.

Bien évidemment, on ne peut pas utiliser la même Librairie plusieurs fois au sein du même contexte.

Aide en ligne :
Les librairies de mots


3.3 Les Tunnels

Définition d’un Tunnel:
C’est une règle d’IA prioritaire qui déclenche une recherche dans un autre contexte. Facultativement, on peut lancer une séquence intermédiaire.

Cette séquence intermédiaire peut servir, entre autres, à stocker dans une variable une donnée au passage sans rien afficher dans le chatbot.

Définition d’une Variable :
C’est une donnée que le chatbot va stocker dans sa mémoire. Une variable se définit par son nom et par sa valeur.

EX: La Variable portant le nom “type_de_bien” peut prendre comme valeur “Maison” ou “Appartement”

Aide en ligne :
Tout savoir sur les variables

C’est une logique complexe à maîtriser mais c’est un outil très puissant. Il va en effet permettre de détecter plusieurs intentions dans la même phrase. Le tunnel dans le contexte par défaut détecte une première intention puis lance une recherche dans les règles d’IA d’un autre contexte pour détecter la seconde intention.

Il est aussi possible de mettre des tunnels dans le contexte secondaire et donc de détecter une troisième intention. En théorie, en utilisant des Tunnels en cascade on peut détecter autant d’intentions que l’on veut dans la même phrase. Mais d’un point de vue pratique, il vaut mieux se limiter à trois intentions.

Le mieux, pour comprendre comment ça marche, est d’étudier un cas pratique.

Exemple:

Toujours dans notre chatbot immobilier parisien, on veut détecter, en langage naturel, le type de transaction, le type de bien et l’arrondissement concerné pour pouvoir lancer une recherche dans une base de données d’annonces.

Il faut donc, non seulement que le chatbot comprenne une phrase comme “Je cherche un appartement à vendre dans le 16e” mais aussi traduire ces informations en données compréhensibles par le moteur de recherche.

Les tunnels en cascade et leurs séquences intermédiaires vont pouvoir résoudre cette problématique.

L’idée générale est de détecter chaque intention l’une après l’autre.

Nous allons avoir besoin de 3 contextes : le contexte par défaut dans lequel on détectera l’intention “Type de transaction”, un contexte “Type de bien” pour détecter cette intention et enfin un Contexte “Arrondissement” pour cette intention.

Contexte par défaut

On crée un premier Tunnel “Achat” avec les mots clés correspondants à cette intention et qui lancera une recherche dans le Contexte “Type de Bien”.

Et on se sert de la séquence intermédiaire pour stocker l’information en affectant la valeur “achat” à la variable “type_de_transaction”.

On crée ensuite un Tunnel “Vente” avec les mots clés correspondants et qui lancera lui aussi une recherche dans le Contexte “Type de Bien”.

Et on se sert de la séquence intermédiaire pour stocker l’information en affectant, cette fois-ci, la valeur “vente” à la variable “type_de_transaction”.

On voit donc qu’on peut avoir 2 tunnels différents qui renvoient au même contexte mais comme leurs séquences intermédiaires et leurs mots-clés sont différents, ils détectent deux intentions différentes.

Le chatbot peut donc maintenant faire la différence entre “Je cherche à vendre mon appartement dans le 16e” et “Je veux acheter un appartement dans le 16e”.

Contexte “Type de Bien”

On crée un premier Tunnel “Appartement” avec les mots clés correspondants et qui lancera une recherche dans le Contexte “Arrondissement”.

Et on se sert de la séquence intermédiaire pour stocker l’information en affectant la valeur “appartement” à la variable “type_de_bien”.

On crée ensuite un Tunnel “Maison” avec les mots clés correspondants et qui lancera lui aussi une recherche dans le Contexte “Arrondissement”.

Et on se sert de la séquence intermédiaire pour stocker l’information en affectant, cette fois-ci, la valeur “maison” à la variable “type_de_bien”.

Le chatbot peut donc maintenant faire la différence entre “Je cherche à vendre mon appartement dans le 16e” et “Je cherche une maison à vendre dans le 16e”

Contexte “Arrondissement”

Dans ce contexte-ci on crée de simples règles d’IA pour détecter chaque arrondissement qui chacune renverra à des séquences dans lesquelles on stockera la valeur de l’arrondissement (un nombre entre 1 et 20 puisque Paris compte 20 arrondissements) dans la variable “arrondissement”.

Pour résumer:

Dans le contexte par défaut le chatbot détecte le type de transaction puis recherche le type de bien dans le contexte”Type de bien” et enfin détecte l’arrondissement dans le contexte “Arrondissement”.

Et à chaque étape, le chatbot stocke l’info correspondante dans des variables.

Donc, si l’utilisateur écrit “je cherche à faire l’achat d’un appartement dans le vingtième” le chatbot détectera les intentions et les traduira comme suit :

  • type_de_transaction = achat
  • type_de_bien = appartement
  • arrondissement = 20

Le chatbot peut alors lancer la recherche dans la base de données car ce sont des informations exploitables par le moteur de recherche.

La détection de plusieurs intentions dans une phrase saisie est un casse-tête pour toutes les IA du monde entier. Avec les tunnels, notre plateforme offre enfin une solution pragmatique et efficace à cette problématique.


3.4 Comment trouver quelles règles sont en conflit ?

Plus une IA est poussée, plus le temps de configuration est important et plus la probabilité d’avoir des règles en conflit augmente. En effet, dès que l’on ajoute un nouvel élément (mot clef, règle, contexte, tunnels), il faut potentiellement gérer tous les conflits que cela engendre en cascade.

Pour vous aider dans la résolution des conflits entre plusieurs règles, nous avons tout de même un outil bien pratique que sont les variables de contexte et d’expression :

  • {{BN_ACTIVE_EXPRESSION}} qui affiche la dernière Expression (ou mot clef) qui a été déclenchée
  • {{BN_ACTIVE_CONTEXT}} qui affiche le dernier Contexte qui a été déclenché

Quand vous identifiez un problème dans votre IA c’est souvent parce que le bot a donné la mauvaise réponse. Vous aurez une piste de solution en ajoutant un élément “texte” avec ces deux variables dans la séquence de la mauvaise réponse et en répliquant l’erreur. Vous saurez ainsi quel est le Mot Clef ou l’Expression qui a déclenché cette réponse ainsi que le Contexte dans lequel l’erreur a été faite.

Lorsqu’on commence à utiliser les tunnels il peut arriver que le ChatBot se retrouve bloqué dans une boucle infinie (Ex: Dans le Contexte A, un Tunnel lance une recherche dans Le Contexte B et trouve un autre tunnel qui renvoie au premier contexte.)

Dans ce cas, notre plateforme détecte le problème, stoppe le ChatBot et vous affiche, dans la conversation, la Séquence et le Contexte qui ont déclenchés la boucle infinie.

Construire une IA poussée est un travail itératif et il n’y a pas d’autre solution que d’y consacrer beaucoup de temps. Cela peut aller de quelques jours à plusieurs semaines selon la complexité.

Il convient donc de prendre en compte cette information dans l’élaboration de votre cahier des charges et de votre planning.


<< Partie précédente Table des matières Partie suivante >>

Téléchargez le guide au format PDF


➜ Découvrez Botnation et lancez votre chatbot facilement !