Le bot va nous aider

Le bot va nous aider

Il y a un an, notre bien-aimé service RH nous a demandé d'écrire un chatbot qui aiderait à l'adaptation des nouveaux arrivants dans l'entreprise.

Réservons que nous ne développons pas nos propres produits, mais que nous proposons à nos clients une gamme complète de services de développement. L'histoire portera sur notre projet interne, pour lequel le client n'est pas une entreprise tierce, mais nos propres RH. Et la tâche principale, compte tenu de la disponibilité limitée des personnes, des ressources et du temps, est de terminer le projet à temps et de lancer le produit.

Décrivons d’abord les problèmes qui ont dû être résolus.

Les développeurs sont pour la plupart des personnes introverties et n’aiment pas parler ; il est beaucoup plus facile d’écrire votre question dans un chat par e-mail. Avec un bot, vous n’avez pas à vous demander à qui demander, qui appeler, où aller et, en général, où chercher des informations et si elles sont pertinentes.

Le deuxième problème est l'information - il y en a beaucoup, elle se trouve dans différentes sources, elle n'est pas toujours disponible et nécessite des ajouts et des mises à jour constants.

L'entreprise compte près de 500 employés, ils sont situés dans différents bureaux, fuseaux horaires, villes de Russie et même à l'étranger, il y a généralement beaucoup de questions, donc une autre tâche est de réduire le fardeau du personnel RH associé aux questions les plus fréquemment posées. par les salariés.

Il était également nécessaire d'automatiser les processus suivants : l'arrivée des nouveaux arrivants dans l'entreprise, l'envoi de messages aux managers et aux mentors des nouveaux arrivants, l'envoi de rappels automatiques sur les cours et les tests qu'un nouvel arrivant doit réussir pour une adaptation réussie.

Les exigences techniques ont été établies sur la base des exigences commerciales.

Le bot doit fonctionner sur la base de Skype (historiquement, ils l'utilisent dans l'entreprise), c'est pourquoi le service sur Azure a été choisi.

Pour en restreindre l'accès, nous avons commencé à utiliser le mécanisme d'autorisation via Skype.
La bibliothèque ParlAI a été utilisée pour la reconnaissance de texte

Un portail Web administratif est également requis pour la configuration, la formation, le débogage, la configuration des mailings et d'autres tâches.

Le bot va nous aider

En travaillant sur le projet, nous avons rencontré un certain nombre de problèmes et de difficultés.

Par exemple, des problèmes techniques sont survenus avec un compte Azure. Microsoft n'a pas souhaité activer notre abonnement en raison de certaines difficultés techniques au sein de leur service. Pendant près de deux mois, nous n’avons rien pu y faire ; le support Microsoft a finalement levé la main et nous a envoyé vers des partenaires, qui ont tout mis en place avec succès et nous ont donné un compte.

L'étape la plus difficile a été le démarrage du projet, lorsqu'il faut choisir ce que nous utiliserons, quelle sera l'architecture, comment et où stocker les données et comment les composants et modules du système interagiront les uns avec les autres.

Dans notre cas, les problèmes essentiellement ordinaires liés au démarrage d'un projet ont été encore compliqués par la question du personnel. Les spécificités de notre métier sont telles que, contrairement aux projets commerciaux, les projets internes sont souvent travaillés par des développeurs qui n'ont pas suffisamment de connaissances dans les domaines requis - ils se sont simplement retrouvés, par la volonté du destin, sur le banc en attendant le prochain gros projet commercial sympa. Il est logique que les choses soient également très difficiles en matière de motivation dans une telle situation. La productivité chute, l'équipe est souvent inactive et il faut donc persuader (motiver) ou changer la personne. Lorsque vous changez de développeur, vous devez organiser une formation, transférer des connaissances et essentiellement recommencer le projet. Chaque nouveau développeur a vu l'architecture à sa manière et a réprimandé les précédents pour les décisions qu'ils ont prises et le code des autres. La réécriture est partie de zéro.

Cela a duré environ six mois. Nous marquions simplement le pas, refactorisons le code et n'écrivons rien de nouveau.

De plus, sur les projets internes, en règle générale, il n'y a presque pas de documentation et il était difficile de comprendre ce qui devait être fait à chaque instant et quelles étaient les priorités actuelles. Il a fallu créer une équipe permanente, établir des processus et mener une planification et une évaluation pendant au moins trois mois. Mais comment faire lorsque le projet n'est pas commercial, ce qui signifie qu'il faut investir un minimum d'heures de travail, et en même temps obtenir un résultat pas pire que pour un client externe ?

Nous avons identifié un vivier de ressources qui ont participé au développement du projet, le connaissent et souhaitent y travailler. Nous avons établi un calendrier d'emploi des personnes sur les projets. Nous avons évalué et coordonné les travaux et inséré ces travaux dans les « trous » entre les projets principaux. Après 4 mois, nous avons reçu un prototype fonctionnel de l'application.

Parlons maintenant plus en détail des fonctionnalités, de l'architecture et des solutions techniques du bot.

L’une des principales exigences des RH était de reconnaître le texte rédigé par l’utilisateur pour répondre correctement à la question. Vous pouvez lui écrire - je veux partir en vacances, je veux partir en vacances ou j'aimerais partir en vacances, et il comprendra et répondra en conséquence. Ou soudainement, la chaise d'un employé se brise et il veut écrire « la chaise est cassée » ou « Ma chaise est fissurée » ou « Le dossier de la chaise est tombé » ; avec une formation appropriée, le robot reconnaîtra de telles demandes. La qualité de la reconnaissance de texte elle-même dépend de la formation du bot, dont nous parlerons plus tard.

La prochaine exigence et une partie de la fonctionnalité est le système de dialogue du bot. Un système a été développé dans lequel le bot peut dialoguer et comprendre le contexte du problème actuel. En réponse à votre question, il peut poser des questions de clarification et poursuivre la conversation si nous avons formé le bot pour ce faire. Skype prend en charge des options de menu simples pour indiquer aux utilisateurs les options permettant de poursuivre les conversations. De plus, si nous discutons, mais que nous décidons soudainement de poser une question hors sujet, le bot le comprendra également.

Le bot permet d'envoyer divers artefacts à l'utilisateur en fonction de ses données personnelles. Par exemple, à son emplacement. Supposons que si une personne voulait trouver des toilettes, on lui montrerait un plan du bureau le menant aux toilettes. Et la carte sera choisie en fonction du bureau de l'entreprise dans lequel se trouve l'employé.

L'une des tâches les plus importantes consiste à protéger les informations personnelles des utilisateurs. Nous ne pouvons pas permettre à chacun d’avoir accès aux données sensibles exploitées par notre bot. La nécessité d’une autorisation pour un tel bot en fait partie intégrante. Le bot demande à l'utilisateur de s'authentifier avant de pouvoir dialoguer avec lui. Cela se produit la première fois qu’un employé contacte le bot. L'autorisation elle-même redirige l'utilisateur vers la page appropriée, où l'utilisateur reçoit un jeton qu'il insère ensuite dans un message Skype. Si l'autorisation réussit, vous pouvez commencer à communiquer avec le bot.

Le bot va nous aider

L'autorisation s'effectue via Skype - service d'autorisation de portail, réseau d'entreprise et LDAP. Ainsi, l'autorisation dépend des données utilisateur actuelles sur le réseau d'entreprise.

Au cours du processus de développement du bot, nous avons réalisé que nous avions besoin d'une sorte de système intégré aux fonctionnalités du portail qui pourrait aider les RH à déboguer rapidement le bot. Nous avons ajouté une page de portail où les RH peuvent voir les erreurs enregistrées par les utilisateurs lorsqu'ils travaillent avec le bot et les résoudre en utilisant le recyclage ou les laisser aux développeurs.

La possibilité de former un bot directement sur le portail n'était pas incluse dès le début. Au cours du processus de développement, nous avons réalisé que la formation du bot est la tâche la plus courante que les employés du service RH effectueront lorsqu'ils travailleront avec lui, et que l'envoi de fichiers texte aux développeurs pour une formation supplémentaire sur le bot est totalement inacceptable. Cela prend trop de temps et crée trop d’erreurs et de problèmes.

Le bot va nous aider

Nous avons écrit une interface utilisateur sur le portail pour une formation conviviale du bot. Il permet aux RH de voir la formation actuelle du bot, de le former davantage et de procéder à des ajustements à la formation en cours. La formation est représentée par une arborescence dans laquelle les nœuds, c'est-à-dire les branches, sont la continuation du dialogue avec le bot. Vous pouvez créer des questions et réponses simples, ou créer des dialogues importants, tout dépend des RH et de leurs besoins.

Quelques mots sur l'architecture de la solution.

Le bot va nous aider

L'architecture de la solution est modulaire. Il comprend des services chargés de diverses tâches, à savoir :
• Service de robot Skype sur Azure : reçoit et traite les demandes des utilisateurs. Il s'agit d'un service assez simple qui est le premier à recevoir une demande et à effectuer son traitement initial.
• Portail d'administration : un service qui fournit une interface Web pour la configuration du portail et pour le bot lui-même. Le bot contacte toujours le portail en premier, et le portail décide quoi faire ensuite avec la demande.
• Service d'autorisation - fournit des mécanismes d'authentification pour le bot et pour le portail d'administration. L'autorisation s'effectue via le protocole Oauth2. Avec une autorisation positive, le service effectue l'autorisation dans le réseau d'entreprise en fonction des données utilisateur valides, afin que le système puisse contrôler les erreurs associées aux données désynchronisées.
• Module de reconnaissance de texte AI, écrit en Python et utilisant le framework ParlAI pour la reconnaissance de texte elle-même. Il s'agit d'un réseau de neurones, du moins dans sa mise en œuvre actuelle. Nous utilisons l'algorithme tfDiff pour comprendre les questions. Le module fournit une API pour communiquer avec lui et apprendre.

En conclusion, je tiens à dire qu'il s'agit de notre première expérience dans la création d'un chatbot, et nous avons essayé de rendre le système aussi simple que possible, mais en même temps fonctionnel, avec des coûts de main-d'œuvre minimes. Je pense que nous avons un produit très intéressant. Doté de son propre système de formation, de journalisation des erreurs, d'envoi de notifications, il peut également être intégré à n'importe quel autre messager.

Source: habr.com

Ajouter un commentaire