Motores Cognitivos
En esta documentación, nos enfocaremos en comprender de manera general el funcionamiento de los motores cognitivos, su integración con Lynn y las ventajas que ofrece su uso.
Antes de intentar entender qué es un motor cognitivo, debemos comprender el concepto de bot. Un bot es una aplicación capaz de realizar tareas de forma autónoma e interactuar con humanos a través de un canal de comunicación, habitualmente en lenguaje natural.
Para que un bot sea una herramienta útil, es fundamental que tanto el reconocimiento de la intención del usuario como la respuesta configurada sean precisos. Para lograr esto, es clave el uso de motores cognitivos que incorporan módulos de procesamiento de lenguaje natural (NLP, por sus siglas en inglés), los cuales permiten definir la intención del usuario mediante procesos de entrenamiento.
Implementar un bot con IA conversacional es una excelente manera de automatizar la atención y mejorar el servicio que ofrecen los agentes, lo cual, a mediano plazo, se traduce en optimización de costos. De este modo, las organizaciones pueden asegurar un servicio 24/7, reducir los errores humanos y disminuir gastos. Al integrar bots en la estrategia de gestión de relaciones con el cliente, puedes estar seguro de que tus clientes recibirán una asistencia eficiente y competente.
Todo motor cognitivo emula el pensamiento humano mediante técnicas avanzadas de computación para predecir e interpretar las acciones a ejecutar. Las habilidades de los motores cognitivos se entrenan (NO se programan), lo que les permite enfrentar cualquier reto que el administrador considere necesario.
Estas capacidades se exponen mediante una serie de servicios o APIs, que están disponibles en Internet a través de protocolos REST y se comunican en formatos XML y JSON. Además, se proporciona una serie de SDKs con las cuales Lynn puede interactuar.
Empresas como Microsoft, IBM y Google están dedicando numerosos esfuerzos al desarrollo de esta tecnología. Algunos ejemplos son el motor cognitivo Watson de IBM, el servicio de comprensión de lenguaje LUIS (Language Understanding) de Microsoft y los productos Dialogflow ES y Dialogflow CX de Google, entre muchos otros motores cognitivos disponibles en el mercado.
Cabe señalar que Lynn incorpora los principales motores cognitivos de estas empresas. En los próximos capítulos, explicaremos cómo Lynn integra, y puede integrar, cualquier motor cognitivo.
Agregar un motor cognitivo a un tenant
Durante la creación del tenant
Es posible realizar, durante la creación de un tenant, la importación de un motor cognitivo a la configuración del tenant.
- En el dashboard, hacer clic en el botón Nuevo Tenant, ubicado en la parte superior derecha de la vista.
- Completar los datos de configuración requeridos en los pasos Inicio y General.
- En el paso Configuración, en la sección Plantilla flujo por defecto, seleccionar la opción Importar desde un motor cognitivo.
- Debajo, se podrá desplegar una lista que muestra todos los motores cognitivos soportados en Lynn.
- Seleccionar el motor cognitivo y proceder a su configuración.
De no hacerse esta configuración, el tenant se creará con un motor cognitivo por defecto propio de Lynn.
Desde el diagrama de flujo
Ubicado en el diagrama de flujo:
- Hacer clic en el botón Contextos cognitivos (en caso de que ya esté configurado un contexto cognitivo en el tenant, aparecerá el nombre que se le haya asignado en su configuración). Se abrirá una ventana que, si el tenant tiene motores cognitivos, mostrará una lista de sus nombres junto con el ícono correspondiente.
- Hacer clic en el botón Agregar ubicado en la esquina superior derecha de la ventana.
Aparecerá una lista que muestra todos los motores cognitivos compatibles con Lynn. - Seleccionar el motor cognitivo y proceder a su configuración.
IBM Watson
[Nombre]: Campo obligatorio en donde se debe ingresar el nombre que identificará la creación del motor cognitivo.
[EndPoint]: Campo donde se define el punto final de comunicación que puede ser accedido a través de URL que se especifica en la interfaz de IBM Watson, en los detalles de configuracion del aplicativo creado.
[Skill ID]: Campo identificador asignado a cada habilidad que es creada en IBM Watson Assistant, y se utiliza para distinguir y trabajar con habilidades específicas dentro del entorno de desarrollo o a través de la API, el cual esta compuesto por 32 digitos y 4 guiones.
[Assistant ID]: Campo en donde debe ingresar el ID de la habilidad, el cual esta compuesto por 32 digitos y 4 guiones.
[API key]: Campo en donde se debe ingresar la api key asociada a las credenciales correspondientes del servicio. Recuerda que la API key es sensible a mayúsculas y minúsculas y es esencial para autenticar las solicitudes que hagas a través de la API de Watson.
[Contexto cognitivo por defecto]: Permite definir si quiere que el contexto cognitivo sea configurado por defecto para el tenant.
Microsoft LUIS
Pre Requisitos:
- Disponer de una cuenta MS LUIS habilitada para integraciones cognitivas https://www.luis.ai/.
- Generar credenciales de acceso para integraciones externas.
[Nombre]: Campo obligatorio en donde se debe ingresar el nombre que identificará la creación del motor cognitivo.
[EndPoint]: Campo donde se define el punto final de comunicación que puede ser accedido a través de URL que se especifica en la interfaz de Microsoft LUIS, en los detalles de configuracion del aplicativo creado.
[Key]: Este campo se obtiene del apartado de "manage/AzureResources" al crear el motor cognitivo en luis.ai.
[App Id]: Este campo se extrae del apartado de "manage/settings" durante la creación del motor cognitivo en luis.ai.
[Version]: La información de este campo se encuentra visible al lado del nombre asignado al motor cognitivo.
[SlotName]: Campo en el cual se debe indicar en el ambiente de microsoft luis que desea trabajar estos pueden ser Production slot (Espacio de producción) o Staging slot (Espacio de ensayo).
[Contexto cognitivo por defecto]: Permite definir si quiere que el contexto cognitivo sea configurado por defecto para el tenant.
NLU Lynn
[Nombre]: Campo obligatorio en donde se debe ingresar el nombre que identificará la creación del motor cognitivo.
[EndPoint]: Campo donde se define el punto final de comunicación que puede ser accedido a través de URL que se especifica en la interfaz de NLU Lynn, en los detalles de configuracion del aplicativo creado.
[Workspace]: Es el ID del workspace en que se quiera trabajar. Es único a cada workpsace dentro de un cliente, teniendo las colecciones de intención (intent) y de entidades (entity) para definir y entrenar modelos.
[Servidor]: Campo en donde debe especificar el servidor donde se encuentra la base de datos
[Nombre de la base de datos]: Campo donde debe ingresar nombre de base de datos con la que se trabajara
[Usuario]: Campo donde debe ingresar nombre del usuario correspondiente a la base de datos con la que se trabajara
[Contraseña]: Campo donde debe ingresar nombre del contraseña correspondiente a la base de datos con la que se trabajara
[Contexto cognitivo por defecto]: Permite definir si quiere que el contexto cognitivo sea configurado por defecto para el tenant.
NLU Lynn NLU 2.0
Nota: Considerar que NLU2.0 debe tener un mínimo de 5 frases de entrenamiento.
[Nombre]: Campo obligatorio en donde se debe ingresar el nombre que identificará la creación del motor cognitivo.
[EndPoint]: Campo donde se define el punto final de comunicación que puede ser accedido a través de URL que se especifica en la interfaz de NLU Lynn NLU 2.0, en los detalles de configuracion del aplicativo creado.
[InferenceURL]: Campo donde se debe ingresar URL correspondiente para realizar evaluacion cognitiva.
[Publish and training]: Campo que permite entrenar el motor con el fin de potenciar su habilidad para comprender y responder de manera precisa a las consultas del usuario en ese dominio específico.
[Client Id]: Es el ID del cliente o usuario. Corresponde a su ID único en la base de datos en Firebase, en donde están todos sus proyectos, workspaces y datos.
[Workspace]: Es el ID del workspace en que se quiera trabajar. Es único a cada workpsace dentro de un cliente, teniendo las colecciones de intención (intent) y de entidades (entity) para definir y entrenar modelos.
[Project Id]: Es el ID o nombre del proyecto que quiere trabajar el cliente. Es cómo se va a identificar el proyecto que se quiera trabajar, teniendo que de un mismo set de datos (un mismo workspace) se pueden generar distintos modelos
[Usuario]: Campo que permite ingresar nombre de usuario ingresado en LEA
[Contraseña]: Campo que permite ingresar contraseña de usuario ingresado en LEA
[Contexto cognitivo por defecto]: Permite definir si quiere que el contexto cognitivo sea configurado por defecto para el tenant.
Dialog Flow
Para comenzar, es necesario acceder a la creación de un agente utilizando el siguiente enlace: https://dialogflow.cloud.google.com/ Este proceso se realiza en la sección 'Crear Nuevo Agente'.
En caso de que ya disponga de un agente previamente creado, puede acceder al mismo enlace mencionado, pero esta vez dirigiéndose a las configuraciónes correspondientes al agente existente. Dentro de estas configuraciónes, en la sección 'GOOGLE PROJECT', haga clic en el Project ID.
A continuación, diríjase a la sección de APIs y servicios y acceda a las credenciales. Aquí, deberá gestionar una cuenta de servicio, creándola según sea necesario.
Una vez creada la cuenta de servicio, diríjase a la sección de creación de claves y genere una nueva clave en formato JSON.
Concluido estos pasos, podrá acceder a Lynn y cargar el archivo generado utilizando el botón indicado a continuación.
[Botón para subir archivo de confirguracion]: Permite adjuntar archivo de formato .json para completar los campos de configuración del motor cognitivo Dialog Flow.
[Nombre]: Campo obligatorio en donde se debe ingresar el nombre que identificará la creación del motor cognitivo.
[Contexto cognitivo por defecto]: Permite definir si quiere que el contexto cognitivo sea configurado por defecto para el tenant.