Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Setiembre 2019
Registered Trademarks:
GeneXus is a trademark or registered trademark of G
eneXus S.A. All other
trademarks mentioned herein are the property of their respective owners.
2
OBJETIVO
Bienvenidos al lab de chatbots!
Aquí veremos la potencia del generador de chatbots introducido en la versión
GeneXus 16.
Crearemos un chatbot que atiende consultas en un Encuentro de tecnología y
negocios.
Los chatbots generados con GeneXus ejecutan tanto en Web como Mobile.
En este lab estaremos accediendo a nuestro chatbot a través de WhatsApp.
Versión de GeneXus:
WhatsApp:
Para la integración con WhatsApp lo haremos a través de Twilio. Debes seguir los
pasos detallados a continuación para configurar la cuenta:
https://wiki.genexus.com/commwiki/servlet/wiki?44141,GX29+Chatbots+Laborat
ory+Initial+Setup,
Proveedor NLP:
Puedes usar Watson o DialogFlow. En cada uno de los casos, sigue las
instrucciones dadas:
● Watson
https://wiki.genexus.com/commwiki/servlet/wiki?39748,Configure+IBM+Wa
tson+services+for+the+Chatbot+generator,
3
● DialogFlow
https://wiki.genexus.com/commwiki/servlet/wiki?39749,Configure+Google+
Dialogflow+for+the+Chatbot+generator,
Base de conocimientos:
http://samples.genexusserver.com/beta/kbdashboard.aspx?SampleChatbotsWha
tsApp
Para comenzar, ejecutemos los siguientes pasos para dialogar con el chatbot.
4
Luego de salvar los cambios (lo mismo ocurre haciendo botón derecho sobre la
instancia - objeto RUDILabGX29- seleccionado la opción Synchronize Chatbot), se
genera un archivo de metadata que se impacta en el NLP provider, para generar el
diálogo con sus intenciones y entidades(1).
5
NOTA: EL GENERADOR DE CHATBOTS FUNCIONA COMO UN PATTERN. A PARTIR DEL MODELO, EL PATTERN
GENERA AUTOMÁTICAMENTE TODOS LOS OBJETOS NECESARIOS PARA RESOLVER LA CONVERSACIÓN ENTRE EL
USUARIO Y EL NLP PROVIDER.
EL CHATBOT EN ACCIÓN
A través de nuestro chatbot, los usuarios podrán:
● Saber dónde se encuentran las salas de conferencias
● Saber dónde se encuentran algunos servicios
● Obtener datos de los oradores
Hagamos botón derecho sobre el objeto RUDILabGX29, y luego Generate ChatBot.
Nota: La opción Generate Chatbot hace que se calculen los objetos que se van a
generar a partir de nuestra instancia (RUDILabGX29) y se importen en la KB.
Puede aparecer el siguiente mensaje, que indica que se actualizarán los recursos
del generador de chatbots.
INICIALIZACIÓN
6
Las entidades han sido creadas en el NLP provider, pero sus valores deben ser
inicializados.
● Floors
● Rooms
● Speakers
Los valores serán cargados en el NLP provider a través de una API provista por el
módulo chatbots.
Abre el objeto BatchEntities para conocer el método usado para subir valores y
entidades a Watson (Chatbot.SendEntityValues).
Auth Token:
7
Nota: Solo los usuarios que se han unido al sandbox, pueden recibir mensajes. Como tú
ya has hecho un join al sandbox, podrás recibir mensajes. Si quieres que alguien más lo
haga, debe unirse también.
8
Nota:
9
10
Veamos ahora cómo se resuelven las intenciones, sin antes dejar de saludar al
chatbot!
11
12
Puedes ver el Flow “ServiceLocationRoom” que es el que resuelve esta intención.
13
14
El Flow que resuelve este intent es “DetailFromSpeaker”.
15
¿Qué significa que se mapea con una entidad en Watson? Que se controlará que
el usuario no ingrese un dato que no se encuentre dentro de los valores (y sus
sinónimos) de esta entidad. Es como un chequeo de integridad, contra el Provider.
¿CÓMO SE RESUELVE LA RESPUESTA? CUANDO EL USUARIO TERMINA DE INGRESAR LOS DATOS SOLICITADOS, SE
EJECUTA EL OBJETO DADO EN LA PROPIEDAD CONVERSATIONAL OBJECT.
16
parm(in:&SearchFloor, out:&BathRoomMapImage);
DOCUMENTACIÓN
Chatbots in GeneXus
Chatbot Generator
Chatbots Architecture
How to build a Chatbot using GeneXus
Chatbots Channels API
Chatbot Generator Try Live
17
REFERENCIAS
Por ejemplo, dada la intención de “Obtener los datos de un orador”, una
(1)
entidad de esa intención sería los “Oradores”, y el valor de dicha entidad por
ejemplo, puede ser “Gaston Milano”.
18