Botovodstvo



Depuis le début des années 2000, les nouvelles concernant l'introduction des robots de discussion dans le travail apparaissent avec une fréquence enviable. Dans cet article, je vais vous dire par où commencer et donner un aperçu des solutions existantes, ainsi que partager mon expérience dans la création d'un bot pour Selectel.

Champ d'application


Le développement commercial s'accompagne souvent non seulement de l'extension du cœur de métier, mais aussi du débogage des processus de support. Les chatbots ne sont qu'une partie de l'activité commerciale dans le cadre de l'automatisation de routine. La communication et la mise en œuvre de tâches simples du même type sous-tendent le travail du chat bot. Avec lui, vous pouvez effectuer non seulement des tâches répétitives, mais aussi celles qu'une personne n'est pas en mesure d'effectuer, par exemple, surveiller l'activité sur les réseaux sociaux.

Je veux donner une variété de domaines d'application pour les bots en utilisant l'exemple de mon propre travail chez Selectel. Mini-spoiler: J'ai commencé mon travail en tant que rédacteur technique, maintenant je suis ingénieur dans le département des solutions cloud. Le chemin vers la mise en place d'assistants virtuels a commencé avec un bot pour le service marketing, qui suit les commentaires et mentions de l'entreprise sur les réseaux sociaux. Un tel développement est très simple, mais complète efficacement les solutions existantes sur le marché, par exemple le service IFTTT .

Les développements suivants dans ma pratique ont été un chatbot interne pour le département des ressources humaines et un bot pour la communication avec les clients, présentés comme un stand de démonstration lors des conférences SelectelTechDay à Saint-Pétersbourg et à Moscou . Les deux robots sont créés en utilisant différents services et technologies. Et avant de plonger dans les détails techniques, considérez le schéma de haut niveau des robots d'appareil.

Les principes de base de la botanique




L'activité Chatbot est construite autour de 3 actions principales:

  1. Les informations sont reçues ou affichées via certains canaux de communication, par exemple, dans les boîtes de dialogue Slack ou Vk.com.
  2. La reconnaissance de l'intention est une analyse complète des informations reçues pour former une réponse
  3. Traitement des actions - tout travail effectué côté serveur, nécessaire pour préparer la bonne réponse. Par exemple, si une prévision météo a été demandée, alors une demande sera faite à une certaine API sur la météo dans la ville N, et les résultats de cette commande seront envoyés à l'utilisateur

Les principales actions des chatbots sont combinées dans le cadre de la tâche de maintien du contexte afin de créer une forme humanoïde de communication et de soutien au dialogue. Le chatbot doit «se souvenir» du sujet de la conversation et adapter ses réponses en conséquence.

La question de la connexion du chatbot aux plateformes sociales se démarque séparément. Les connecteurs aux messageries instantanées et aux réseaux sociaux peuvent être mis en œuvre indépendamment ou pris en charge dans le cadre des produits existants pour créer des robots de discussion.

À l'heure actuelle, il existe de nombreuses solutions offrant un service prêt à l'emploi pour automatiser le support technique ou les processus de vente. J'accorderai plus d'attention aux outils qui vous permettent de créer un service qui répond aux exigences internes de sécurité de l'entreprise sans compliquer le processus de développement.

Construction botanique


Les 3 principes ci-dessus des robots de discussion (canal, analyse, action) peuvent être mis en œuvre de différentes manières. L'option la plus simple consiste à comparer le texte entrant et à envoyer les réponses correspondantes à l'utilisateur.



Notre objectif est un peu plus élevé - obtenir un système dans lequel vous pouvez ajouter rapidement de nouveaux scripts et qui comprendra l'utilisateur dans la plupart des cas.

Pour ce faire, nous devons comprendre de quoi parle l'utilisateur, contrôler la progression du dialogue et, dans certains cas, effectuer certaines actions (par exemple, réserver des salles de réunion). Ceci peut être réalisé en utilisant les outils suivants:

  • DialogFlow (Google)
  • Wit.ai (Facebook)
  • Azure Bot Service (Microsoft)
  • Rasa Core (Open Source)


Lors du choix d'un produit, les facteurs suivants sont pris en compte:

  1. Quelle est l'importance du placement du code exécutable du bot dans les systèmes existants
    Par exemple, dans le cas de Wit.ai et Dialogflow, nous ne contrôlons pas complètement l'ensemble du processus - nous donnons le texte à ces applications et obtenons une réponse toute faite. À l'aide du SDK Rasa Core ou Azure BotBuilder, nous pouvons stocker toute la correspondance dans les limites des systèmes internes
  2. De combien de canaux de communication avez-vous besoin pour vous connecter
    Dialogflow offre la possibilité d'utiliser un nombre limité de connecteurs qui connectent les messageries instantanées et les réseaux sociaux en spécifiant les clés d'accès. Vous pouvez utiliser n'importe quel nombre de canaux pour Wit.ai et Rasa Core, mais la logique de connexion à ceux-ci doit être implémentée indépendamment (c'est souvent une tâche très triviale). Azure Bot Service a la possibilité d'utiliser des connecteurs pour certains canaux, mais n'est pas limité à ceux-ci, et il peut également être connecté à d'autres sources indépendamment
  3. Est-il facile de modifier la base de connaissances du bot
    Lorsque vous créez un bot sous forme de code de programme sans utiliser d'interface visuelle pour interagir avec lui, nous limitons le cercle des personnes qui peuvent apporter des modifications aux boîtes de dialogue et aux réponses du bot. La fonctionnalité d'ajout et de modification de phrases doit être disponible pour tout le monde

Pour notre assistant virtuel interne du chat bot Tirex, une plate-forme de Google Dialogflow a été choisie, qui offre la possibilité de modifier visuellement les intentions, et les actions sont effectuées à l'intérieur d'un cloud privé dans Selectel . Les facteurs déterminants étaient la vitesse de démarrage du travail avec le bot, la sécurité lors de l'envoi de messages et la présence du canal Slack dans la liste des canaux supportés.



L'idée de créer un chat bot a longtemps été dans l'air de l'entreprise, en particulier compte tenu des problèmes qui pourraient être résolus avec elle:

  • Une augmentation du nombre d'employés de l'entreprise, et avec elle un flux croissant de questions similaires comme «Comment utiliser une bibliothèque d'entreprise?» et "Où déjeuner?"
  • Réservation régulière de salles de réunion et délivrance de laissez-passer
  • Recherche d'informations et de documents dans la base de connaissances de l'entreprise



La création et la connexion d'un bot dans Dialogflow prennent plusieurs minutes. Au début, nous allons considérer les principes du chat bot dans le système, puis ajouter l'implémentation d'actions complexes.

Créer un bot dans Dialogflow


Création d'architecture


Plus loin dans le texte, nous travaillerons avec des concepts tels que:

  • L'intention est une tâche formalisée qu'un utilisateur souhaite effectuer.
  • Paramètres - un ensemble de données nécessaires pour effectuer une tâche
  • Réponse - une fonction ou un programme exécuté en réponse à une intention reconnue
  • Phrase de formation - un exemple de message de l'utilisateur sur lequel le chatbot apprend

Dialogflow traite le langage naturel et extrait toutes les données nécessaires pour exécuter des commandes complexes. Pour cela, des agents sont créés qui contiennent plusieurs intentions . Chacune des intentions vous permet de préparer un chatbot pour comprendre les nuances et les subtilités lors de la formulation des demandes.

L'intention comprend des phrases de formation , des paramètres et des réponses . À l'intérieur de la phrase de formation, nous mettons en évidence les paramètres (par exemple, l'heure ou le lieu) qui sont nécessaires pour former la bonne réponse.

La réponse est indiquée soit intentionnellement , soit Dialogflow envoie une demande à notre serveur, qui fait le travail nécessaire et renvoie la réponse à notre chatbot à titre d'exemple:

  • Pour des questions simples (par exemple, «Avons-nous un programme d'assurance à l'étranger?», La réponse réside dans l' intention
  • Pour des tâches plus complexes comme "Y a-t-il une salle d'appel gratuite maintenant?" la réponse est formée en utilisant une demande supplémentaire au serveur, qui détermine le temps libre pour tous les participants et salles



Travailler avec des intentions


Envisagez de travailler avec Dialoglow comme exemple de réservation de négociation. Nous créons un agent de gestion des réservations et déterminons les intentions suivantes:

  • Afficher les réservations existantes
  • Réservez une salle de réunion

Chacune des intentions est invoquée par des phrases d'apprentissage. Plus ils sont ajoutés, plus l'action souhaitée sera exécutée. Dans notre exemple, l'intention de «réserver une salle de réunion» sera provoquée par les phrases suivantes:

  • Réservez aujourd'hui à 23h15 pour 30 minutes sur moi
  • Salut Veuillez réserver une salle de réunion le 08/08/2018 de 15h00 à 16h00
  • Réserver
  • J'ai besoin d'une salle de réunion



Le principe de la collecte de données en intention est le suivant:

  1. Sur la base de l'entrée reçue, Dialogflow comprend de quelle intention il s'agit. Dans notre exemple - négociation de réservation
  2. Si les paramètres requis n'étaient pas spécifiés dans le premier message (par exemple, l'heure de la réunion), alors le chat bot posera des questions de clarification
  3. Après avoir reçu toutes les données, Dialogflow enverra une demande à notre serveur en VPC pour réserver la chambre souhaitée

Regardons ce processus en action:



L'action est traitée en envoyant une demande avec toutes les données à l'adresse pré-ajoutée du serveur d'action (URL Webhook):



Il y a un serveur sur website.ru/webhook qui traite les commandes complexes (dans notre exemple, il renvoie la chaîne «Bonjour du serveur!»). Github Gist pour un démarrage rapide:

# -*- coding: utf-8 -*- from flask import Flask, request, make_response, jsonify app = Flask(__name__) @app.route('/webhook', methods=['POST']) def webhook(): req = request.get_json(force=True) intent = req.get('queryResult').get('intent').get('displayName') print(intent) if intent == 'Sample intent': res = make_response(jsonify( { "fulfillmentText": "  !", } )) return res return make_response(jsonify( { "fulfillmentText": "   !", } )) if __name__ == '__main__': app.run(host='0.0.0.0', debug=True, port=5000) 

Création d'un bot à l'aide de RASA


Pour utiliser le chatbot sans services tiers pour la reconnaissance de texte, vous pouvez utiliser des outils tels que Rasa , qui vous permettent de contrôler entièrement l'ensemble du processus du bot. Rasa est un ensemble de composants logiciels open source qui contiennent la reconnaissance vocale et la gestion du dialogue. Déjà maintenant, vous pouvez regarder la Boilerplate , que j'ai préparé pour me familiariser avec la plate-forme, et nous publierons des instructions plus détaillées s'il y a des demandes de la communauté Habr.

Chatbots et affaires


L'utilisation des services d'automatisation pour le service client n'est pas une question facile. Les outils modernes offrent de nombreuses solutions pour choisir entre flexibilité, rapidité de travail et sécurité. Les systèmes de reconnaissance d'intention en langage naturel sont désormais disponibles non seulement sous une forme exclusive, mais également librement distribués, ce qui ouvre de grandes opportunités pour leurs propres expériences. Nous avons considéré l'une des options qui vous permet d'implémenter rapidement des robots de discussion pour automatiser les mêmes tâches de votre entreprise sans coûts d'investissement et avec un minimum de main-d'œuvre. Si vous utilisez déjà des robots de discussion dans votre travail, partagez vos commentaires dans les commentaires sur vos impressions et, bien sûr, les impressions de vos clients.

Source: https://habr.com/ru/post/fr436622/


All Articles