QA

QA de un chatbot

Siempre me ha interesado la Inteligencia artificial, todas las facetas que la rodean, desde la HAL 9000, a los bots de reconocimiento sonoro. Acercarme a ella está siendo un viaje alucinante Una de las preguntas que más se formulan cuando se desarrolla un chatbot es ¿cuál es la manera de testarlo? ¿cómo ha de hacerse el QA? Este es el tema que vamos a tratar en el siguiente artículo. 


Para empezar, deberíamos definir qué es eso de un chatbot. Un chatbot es un software que utiliza mensajes estructurados para emitir respuestas desde una máquina hacia un interlocutor humano. Para que un bot consiga hacer lo definido anteriormente, hay que dotarlo de inteligencia y conocimiento, para lo que se usan principalmente las siguientes soluciones diseñadas por Microsoft:

  •   QaN Maker: es un servicio de API basado en la nube que crea una capa de conversación, preguntas y respuestas mediante los datos. Normalmente, se carga con contenido semiestructurado, como preguntas frecuentes. Se usa para crear una base de conocimiento que responde a preguntas en lenguaje natural.

 

  • Language Understanding (LUIS): permite que el bot comprenda el lenguaje natural mediante la identificación de las intenciones y entidades del usuario.

 Testeado manual con QnA Maker 

Una vez tenemos las preguntas cargadas en el QnA Maker, el propio programa da la opción de testearlas de manera manual. 

El botón “Test” permite preguntar al bot y verificar la respuesta producida una vez hayan sido cargadas en el programa. El “confidence score” muestra el número de confianza que tiene la respuesta producida. Un número por debajo de 80 ha de ser objeto de análisis. QnA Maker muestra también posibles respuestas afines a la pregunta en test. Corresponde al usuario seleccionar la repuesta correcta y una vez hecho, volver a verificarla preguntando de nuevo al bot. Se recomienda usar el botón “save and train” después de haber realizado algún cambio, de esta manera el bot guardará y entrenará los cambios introducidos. 

Testeando de forma automatizada el LUIS 

Usamos Direct Line API para establecer la comunicación entre el bot y el cliente de la aplicación. ¿Cómo se puede usar Direct Line API del bot para comenzar una conversación y también como intercambiar actividades?  

(Para este ejemplo, vamos a usar el ejemplo de Microsoft Sample bot, que está aquí).

Para habilitar el Direct Line API, debemos seguir los siguientes pasos:

1. Acudir al portal de Azure (Azure Portal)

2. Seleccionar Cambiar directorio.

 3. Selecciona el directorio en el que vas a trabajar.

4. Selecciona el recurso con el que vas a trabajar.5. Dentro de recurso seleccionado, selecciona Canales.

  1. Selecciona Editar el Direct Line.


Aparecerá el “token” del Direct Line. El Direct Line hace de intermediario con el bot para que podamos enviar (después de recoger la intención de un usuario), en forma de json.  

Una vez que el Direct Line API está activado, se copia el token producido, para así empezar la conversación. A partir de ahora usaremos Postman para continuar con el proceso. 

En Postman, lanza una POST request para comenzar la nueva conversación y así testear de manera automatizada el conjunto de todas las preguntas/respuestas añadidas previamente en el QnA Maker.

POST https://directline.botframework.com/v3/directline/conversations
Authorization: Bearer SECRET_OR_TOKEN 

 Se recibirá una Conversation ID que quiere decir que la conexión se ha establecido correctamente.  Ahora debemos mandar la actividad al bot:

POST https://directline.botframework.com/v3/directline/conversations/abc123/activities
Authorization: Bearer XXXXXXXXXXXXX
Content-Type: application/json 

De nuevo se recibirá una Conversation ID. 

Para recibir una respuesta del bot debemos lanzar un GET: 

GET https://directline.botframework.com/v3/directline/conversations/abc123/activities?watermark=0001a-94
Authorization: Bearer xxxxxxxxxx

Se recibirá una respuesta como esta: 

 Las actividades recibidas son la matriz de toda la conversación que contiene las actividades enviadas del usuario y la actividad recibida del Bot. 

Como podemos ver en las imágenes, el texto que se envió (pregunta) fue “create a note” y el recibido (respuesta) es “What would like to call your note?”. Hay que enviar una solicitud POST y GET consecutiva de cada uno de los pares pregunta/respuesta para mantener una conversación con el bot. 

Al enviar todas las preguntas/respuestas, Postman nos mostrará la lista de resultados, señalando en rojo todos aquellos resultados incorrectos, que habrá que analizar. 

Compartir
Publicado por
Sergio Aguilar

Este sitio web utiliza cookies para que tengas la mejor experiencia de usuario. Si continuas navegando, estás dando tu consentimiento para aceptar las cookies y también nuestra política de cookies (esperemos que no te empaches con tanta cookie 😊)