Chatbot e Inteligencia Artificial
Introducción
El chatbot de Pandora ITSM se compone de dos servicios: un servidor de charla o chat (con su cliente WEB) y un motor de inteligencia artificial conversacional (opcional).
El motor de inteligencia artificial se puede utilizar para que aprenda de la información introducida en la base de conocimiento de Pandora ITSM para ofrecer respuestas rápidas a las preguntas de los usuarios.
- Automático: Utiliza modelos de aprendizaje automático para ofrecer respuestas al usuario de forma automática en base al aprendizaje previo.
- Manual: Un operador de Pandora ITSM responde al usuario a través de la interfaz del chat.
- Mixto: Pandora ITSM asiste al operador mostrando posibles respuestas a las preguntas del usuario.
La arquitectura consta de tres elementos fundamentales:
- El cliente de chat, con el que interactúa el usuario.
- El servidor de chat, con el que interactúa el operador.
- El motor de predicción, que ofrece respuestas a partir de las preguntas del usuario.
Tanto el cliente como el servidor del chat forma parte de una instalación de Pandora ITSM.
Para añadir capacidades predictivas a Hybrid Helpdesk se deberá instalar y activar Prediction Engine como se describe en siguientes secciones.
Instalación del servidor del chat
Por defecto se instala cuando se utiliza el método de instalación cloud. Para activar dicha opción se utiliza el menú Setup → Setup → ChatBot → Enable chat del chat:
Se debe configurar la URL del web service (Ws) con la URL pública de la instalación de Pandora ITSM, tal como viene configurada en la sección principal del Setup:
En caso de que no funcione como se espera, se deben reproducir los pasos de instalación de Node.js.
Si se ha activado la IA (ver “Configuración de la IA”) aparecerán, además, la sección de opciones de IA con los botones de Actualizar modelo de la base de conocimiento y Actualizar el modelo conversacional.
Configuración de HTTPS para el Chatbot
Se debe activar Enable SSL, por defecto trae los siguientes valores:
Se deberán sustituir los certificados propios por los que trae configurado por defecto. Guardar con el botón Update y verificar el color verde en Check chat server para conocer si está funcionando adecuadamente.
Instalación de Node.js
curl -SsL http://firefly.artica.es/projects/integria/integria_deploy_enterprise.sh | sh curl -sL https://rpm.nodesource.com/setup_12.x | sh yum install -y nodejs npm i -g pm2 cd /var/www/html/integria/extras/chat_server npm update pm2 start server.js
Se debe editar el fichero /etc/systemd/system/integria-chat.service
para que el servicio inicie automáticamente cada vez que arranque el sistema operativo, agregando lo siguiente:
[Unit] Description=Integria-Chat-Server After=network.target [Service] Type=simple ExecStart=/usr/bin/node server Restart=always # Consider creating a dedicated user for Wiki.js here: User=root Environment=NODE_ENV=production WorkingDirectory=/var/www/html/integria/extras/chat_server [Install] WantedBy=multi-user.target
Se guarda el fichero y se ejecuta:
systemctl daemon-reload
systemctl start integria-chat.service
systemctl enable integria-chat
Se debe configurar el acceso a la base de datos del servidor del chat editando el fichero /var/www/html/integria/extras/chat_server/config/config.js
, modificando los parámetros necesarios de la base de datos. Se asumen los valores predeterminados, se deben cambiar si se tiene una instalación personalizada:
Instalación del motor de inteligencia artificial
Se deben ejecutar los siguientes comandos como root (superusuario):
yum install python3 python36-Cython wget http://xxxxxx/prediction_engine-latest.tgz tar xvzf prediction_engine-latest.tgz cd prediction_engine ./install.sh service prediction_engine.service restart
Esto iniciará el servicio en el puerto 6000/tcp
.
Configuración de la IA
La IA se configura de manera independiente en cada channel. Menú Soporte → Chat → Gestión de canales:
- IA url: URL donde escucha el webservice el motor de inteligencia artificial. Debe ser en formato:
HTTP://DIR_IP
- IA Port: Por defecto
6000
. No se debería cambiar salvo que haya tenido que hacer una redirección de puerto en algún sitio intermedio. - Initial response time: Segundos en los que la IA contestará la primera petición de usuario.
- Response time between conversations: Tiempo de respuesta entre pregunta y pregunta una vez iniciada la conversación.
- Progress bar timeout: Tiempo que le dejará el sistema al operador elegir una respuesta de las proporcionadas antes de contestar de manera automática la mejor opción.
- Certainly threshold: Grado de incertidumbre soportado por la IA a la hora de escoger una opción de las ofrecidas, el valor debe ser entre
0
y1
. Se recomienda un valor inicial de 0,5 (50 %
) y ajustar según sea necesario.
Respaldo de los modelos de aprendizaje personalizados
- Antes de realizar cualquier personalización, se recomienda hacer un respaldo o backup de los modelos actuales:
cp -r /opt/prediction_engine/models /opt/prediction_engine/models.bak
- Para restaurar los modelos de la copia de seguridad se ha de ejecutar:
cp -f /opt/prediction_engine/models.bak/\* /opt/prediction_engine/models/
Preguntas y respuestas (Knowledge Base)
Este tipo de modificación es avanzada, por defecto se deben utilizar los botones de Actualizar modelo de la base de conocimiento y Actualizar el modelo conversacional desde la Consola web PITSM.
El modelo de preguntas y respuestas se entrena a partir de un fichero CSV con el siguiente formato:
Código de idioma;Pregunta;Respuesta
Ejemplo:
“es”;“pregunta 1”;“respuesta 1”
“es”;“pregunta 2”;“respuesta 2”
“en”;“question 1”;“answer 1”
“en”;“question 2”;“answer 2”
…
Se puede obtener de forma automática de la base de datos de Pandora ITSM con los comandos:
rm -f /opt/prediction_engine/data/integria_kb.zip 2>/dev/null echo "SELECT id_language AS lang, title as question, data as answer FROM integria.tkb_data INTO OUTFILE '/opt/prediction_engine/data/integria_kb.csv' FIELDS TERMINATED BY ';' ENCLOSED BY '\"' LINES TERMINATED BY '\n';" | mysql -u integria -p integria && zip -j /opt/prediction_engine/data/integria_kb.zip /opt/prediction_engine/data/integria_kb.csv
Para actualizar los modelos:
cd /opt/prediction_engine/src python kb_train.pyc
Diálogos (conversacional)
Menú Support → Chat → Browse → Data management.
En esta sección de la Consola web de Pandora ITSM se podrán agregar ítems conversacionales clasificados por categorías e idiomas.
Para buscar un ítem conversacional específico se deberá colocar una palabra clave que se encuentre en el título y/o respuesta y seleccionar categoría e idioma al cual pertenece.
Configuración avanzada
Este tipo de modificación es avanzada, por defecto se deben utilizar los botones de Actualizar modelo de la base de conocimiento y Actualizar el modelo conversacional desde la Consola web PITSM.
El modelo conversacional se construye a partir de ficheros YAML con la siguiente estructura:
categories: - category 1 - category 2 -... conversations: - - text 1 - text 2 -... - - text 1 - text 2 - text 3 -... …
Se deben colocar los ficheros .yaml
(el nombre del fichero no es importante) en el directorio:
/opt/prediction_engine/data/chat_xx
Siendo xx
el código ISO del idioma que se quiere actualizar (es
para el idioma español, en
para idioma inglés).
Para actualizar los modelos se debe ejecutar:
cd /opt/prediction_engine/src python chat_train.pyc
Cómo usar el chat
El chatbot de Pandora ITSM utiliza channels para definir lugares diferentes donde tener conversaciones entre operadores (usuarios de Pandora ITSM con permisos especiales para gestionar conversaciones) y usuarios normales (usuarios de Pandora ITSM normales o simples visitantes anónimos, si se utiliza el chat desde fuera de Pandora ITSM).
Gestionar un canal
Añadir operadores al canal
El canal debe al menos tener un operador, quien contestará a las peticiones de chat de los usuarios. Se podrá agregar a cualquier usuario con permisos de operador de chat y asignarle una descripción un avatar (diferente al de su ficha de usuario) y los idiomas en los que puede contestar chats.
Se pulsa en Edit users del canal correspondiente para agregar un usuario y luego clic en el botón Add User:
Se utiliza la pantalla para definir un operador, ejemplo:
Una vez agregado otros usuarios podrán iniciar chat.
Operadores del canal
Para que los operadores reciban notificaciones sonoras en caso de que un usuario abra un chat, deben estar en la pantalla de control del chat. Se accede por medio del menú Soporte → Chat → Ver chat.
El operador entrará en uno de esos chats e interactuará con la otra parte:
En el caso de que el chat se abra por parte de un usuario interno, indicará de qué usuario se trata.
Utilizar el chat fuera de Pandora ITSM
Para utilizar el chat fuera de la interfaz de Pandora ITSM, por ejemplo en una página web o en otra aplicación, pulse el icono de estrella para mostrar el snippet de código JavaScript que debe incrustar en la aplicación:
La URL que está incluida en el código es la URL que definida como URL pública en las opciones del servidor de chat. Dicha URL debe estar accesible desde donde los usuarios accedan, en la mayoría de los casos, eso supone que debe ser una URL pública de internet.
Ejemplo:
La conversación inicia al hacer clic en el icono de abajo a la derecha, botón Ayuda: