Botovodstvo



Desde principios de la década de 2000, las noticias sobre la introducción de bots de chat en el trabajo han aparecido con una frecuencia envidiable. En este artículo, te diré por dónde empezar y daré una visión general de las soluciones existentes, así como compartiré la experiencia de crear un bot para Selectel.

Ámbito de aplicación


El desarrollo empresarial a menudo va acompañado no solo de ampliar el negocio principal, sino también de depurar los procesos de soporte. Los chatbots son solo parte de la actividad comercial como parte de la automatización de rutina. La comunicación y la implementación de tareas simples del mismo tipo subyacen al trabajo del bot de chat. Con él, puede realizar no solo tareas repetitivas, sino también aquellas que una persona no puede realizar, por ejemplo, monitorear la actividad en las redes sociales.

Quiero dar una variedad de áreas de aplicación para bots usando el ejemplo de mi propio trabajo en Selectel. Mini spoiler: comencé mi trabajo como escritor técnico, ahora soy ingeniero en el departamento de soluciones en la nube. El camino para implementar asistentes virtuales comenzó con un bot para el departamento de marketing, que rastrea los comentarios y menciones de la compañía en las redes sociales. Tal desarrollo es muy simple, pero complementa efectivamente las soluciones existentes en el mercado, por ejemplo, el servicio IFTTT .

Los siguientes desarrollos en mi práctica fueron un chatbot interno para el departamento de recursos humanos y un bot para la comunicación con los clientes, presentado como un stand de demostración durante las conferencias SelectelTechDay en San Petersburgo y Moscú . Ambos bots se crean utilizando diferentes servicios y tecnologías. Y antes de sumergirse en los detalles técnicos, considere el esquema de nivel superior de los bots del dispositivo.

Los principios básicos de la botánica.




La actividad de Chatbot se basa en 3 acciones principales:

  1. La información se recibe o se muestra a través de ciertos canales de comunicación, por ejemplo, en los cuadros de diálogo de Slack o Vk.com.
  2. El reconocimiento de la intención es un análisis exhaustivo de la información recibida para formar una respuesta.
  3. Procesamiento de acciones: cualquier trabajo realizado en el lado del servidor, necesario para preparar la respuesta correcta. Por ejemplo, si se solicitó un pronóstico del tiempo, se realizará una solicitud a una determinada API sobre el clima en la ciudad N, y los resultados de este comando se enviarán al usuario

Las acciones principales de los chatbots se combinan en el marco de la tarea de mantener el contexto para crear una forma humanoide de comunicación y diálogo de apoyo. El chatbot debe "recordar" el tema de la conversación y adaptar sus respuestas en consecuencia.

El problema de conectar el chatbot a las plataformas sociales se destaca por separado. Los conectores para mensajería instantánea y redes sociales pueden implementarse de forma independiente o admitirse dentro del marco de productos existentes para crear bots de chat.

En este momento, hay muchas soluciones que ofrecen un servicio listo para automatizar el soporte técnico o los procesos de ventas. Prestaré más atención a las herramientas que le permiten crear un servicio que cumpla con los requisitos internos para la seguridad de la empresa sin complicar el proceso de desarrollo.

Construcción botánica


Los 3 principios anteriores de los bots de chat (canal, análisis, acción) se pueden implementar de diferentes maneras. La opción más fácil es comparar el texto entrante y enviar las respuestas correspondientes al usuario.



Nuestro objetivo es un poco más alto: obtener un sistema en el que pueda agregar rápidamente nuevos scripts y que entienda al usuario en la mayoría de los casos.

Para hacer esto, debemos comprender de qué está hablando el usuario, controlar el progreso del diálogo y, en algunos casos, realizar ciertas acciones (por ejemplo, reservar salas de reuniones). Esto se puede lograr utilizando las siguientes herramientas:

  • DialogFlow (Google)
  • Wit.ai (Facebook)
  • Servicio Azure Bot (Microsoft)
  • Rasa Core (código abierto)


Al elegir un producto, se tienen en cuenta los siguientes factores:

  1. ¿Qué tan crítica es la ubicación del código ejecutable del bot dentro de los sistemas existentes?
    Por ejemplo, en el caso de Wit.ai y Dialogflow, no controlamos completamente todo el proceso: entregamos el texto a estas aplicaciones y obtenemos una respuesta preparada. Usando Rasa Core o Azure BotBuilder SDK, podemos almacenar toda la correspondencia dentro de los límites de los sistemas internos
  2. ¿Cuántos canales de comunicación necesitas para conectarte?
    Dialogflow brinda la capacidad de usar un número limitado de conectores que conectan mensajeros instantáneos y redes sociales mediante la especificación de claves de acceso. Puede usar cualquier número de canales para Wit.ai y Rasa Core, pero la lógica de conectarse a ellos debe implementarse de forma independiente (a menudo, esta es una tarea muy trivial). Azure Bot Service tiene la capacidad de usar conectores para ciertos canales, pero no se limita a ellos, y también se puede conectar a otras fuentes de forma independiente
  3. ¿Qué tan fácil es hacer cambios en la base de conocimiento de bot?
    Al crear un bot en forma de código de programa sin usar una interfaz visual para interactuar con él, limitamos el círculo de personas que pueden realizar cambios en los diálogos y las respuestas del bot. La funcionalidad para agregar y editar frases debe estar disponible para todos

Para nuestro asistente virtual interno del chatbot Tirex, se eligió una plataforma de Google Dialogflow, que brinda la capacidad de editar visualmente las intenciones, y las acciones se llevan a cabo dentro de una nube privada en Selectel . Los factores determinantes fueron la velocidad de comenzar a trabajar con el bot, la seguridad al enviar mensajes y la presencia del canal Slack en la lista de los admitidos.



La idea de crear un bot de chat ha estado en el aire de la compañía durante mucho tiempo, especialmente teniendo en cuenta qué problemas podrían resolverse con ella:

  • Un aumento en el número de empleados de la compañía y, con ello, un flujo creciente de preguntas similares como "¿Cómo usar una biblioteca corporativa?" y "¿Dónde almorzar?"
  • Reserva regular de salas de reuniones y emisión de pases.
  • Búsqueda de información y documentos en la base de conocimiento corporativo.



Crear y conectar un bot en Dialogflow lleva varios minutos. Al principio, consideraremos los principios del chatbot en el sistema y luego agregaremos la implementación de acciones complejas.

Crear un bot en Dialogflow


Creación de arquitectura


Más adelante en el texto operaremos con conceptos tales como:

  • La intención es una tarea formalizada que un usuario desea realizar.
  • Parámetros : un conjunto de datos necesarios para completar una tarea
  • Respuesta : una función o programa ejecutado en respuesta a una intención reconocida
  • Frase de entrenamiento : un ejemplo de un mensaje del usuario en el que el chatbot aprende

Dialogflow procesa el lenguaje natural y extrae todos los datos necesarios para ejecutar comandos complejos. Para esto, se crean agentes que contienen varias intenciones . Cada una de las intenciones le permite preparar un chatbot para comprender los matices y sutilezas al formular solicitudes.

La intención incluye frases de entrenamiento , parámetros y respuestas . Dentro de la frase de entrenamiento, destacamos los parámetros (por ejemplo, tiempo o lugar) que son necesarios para formar la respuesta correcta.

La respuesta se indica intencionadamente o Dialogflow envía una solicitud a nuestro servidor, que hace el trabajo necesario y devuelve la respuesta a nuestro chatbot como ejemplo:

  • Para preguntas simples (por ejemplo, "¿Tenemos un programa de seguros en el extranjero?", La respuesta radica en la intención
  • Para tareas más complejas como "¿Hay una sala de llamadas gratis ahora?" la respuesta se forma mediante una solicitud adicional al servidor, que determina el tiempo libre para todos los participantes y salas



Trabajar con intenciones


Considere trabajar con Dialoglow como ejemplo de una reserva de negociación. Creamos un agente de gestión de reservas y determinamos las siguientes intenciones:

  • Ver reservas existentes
  • Reserve una sala de reuniones

Cada una de las intenciones se invoca mediante frases de entrenamiento. Cuanto más se agreguen, más probable será que se realice la acción deseada. En nuestro ejemplo, la intención de "reservar una sala de reuniones" será causada por las siguientes frases:

  • Reserve hoy a las 23.15 por 30 minutos conmigo
  • Hola Reserve una sala de reuniones el 08/08/2018 de 15:00 a 16:00
  • Reservar
  • Necesito una sala de reuniones



El principio de la recopilación de datos en la intención es el siguiente:

  1. Según la información recibida, Dialogflow comprende de qué intención se trata. En nuestro ejemplo: negociación de reserva
  2. Si los parámetros requeridos no se especificaron en el primer mensaje (por ejemplo, la hora de la reunión), el bot del chat hará preguntas aclaratorias
  3. Después de recibir todos los datos, Dialogflow enviará una solicitud a nuestro servidor en VPC para reservar la habitación deseada

Veamos este proceso en acción:



La acción se procesa enviando una solicitud con todos los datos a la dirección previamente agregada del servidor de acciones (URL de Webhook):



Hay un servidor en website.ru/webhook que procesa comandos complejos (en nuestro ejemplo, devuelve la cadena "¡Hola desde el servidor!"). Github Gist para un comienzo rápido:

# -*- 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) 

Crear un bot usando RASA


Para usar el chatbot sin servicios de terceros para el reconocimiento de texto, puede usar herramientas como Rasa , que le permiten controlar completamente todo el proceso del bot. Rasa es un conjunto de componentes de software de código abierto que contienen reconocimiento de voz y gestión de diálogo. Ya puede ver el Boilerplate , que preparé para familiarizarme con la plataforma, y ​​publicaremos instrucciones más detalladas si hay solicitudes de la comunidad Habr.

Chatbots y negocios


Si usar servicios de automatización para el servicio al cliente no es una pregunta fácil. Las herramientas modernas proporcionan muchas soluciones al elegir entre flexibilidad, velocidad de trabajo y seguridad. Los sistemas de reconocimiento de intenciones en lenguaje natural ahora están disponibles no solo en una forma patentada, sino también distribuidos libremente, lo que abre grandes oportunidades para sus propios experimentos. Consideramos una de las opciones que le permite implementar rápidamente bots de chat para automatizar las mismas tareas de su negocio sin gastos de capital y con costos laborales mínimos. Si ya usa bots de chat en su trabajo, comparta comentarios en los comentarios sobre sus impresiones y, por supuesto, las impresiones de sus clientes.

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


All Articles