Crear un agente virtual
Para crear un chat bot en Dialogflow, se puede:
- Crear desde Athento siguiendo esta documentación.
- Ir a https://dialogflow.cloud.google.com/ e iniciar sesión con una cuenta de Google. Una vez dentro, aparecerá la siguiente pantalla. Desde aquí, hacer clic en Crear Agente. Realizar la configuración adecuada para el agente virtual.
Una vez creado el chat bot, debes crear los Intents y Default fallback intents que controlarán el flujo de la conversación.
Cada Intent tiene:
-
Contextos: mediante los contextos, puedes controlar el flujo de una conversación. Puedes configurar contextos para una intención estableciendo contextos de entrada y salida, que se identifican por nombres de cadena. Cada contexto activo tiene una vida útil que define el número de turnos de conversación durante los cuales el contexto permanece activo.
- Intentos normales: el tiempo de vida por defecto es 5, pero será conveniente cambiarlo a 0.
- Intentos de seguimiento: la duración por defecto es 2.
- Expresiones del usuario: lo que el usuario tiene que escribir para que el chat bot sepa qué responder (dialogflow se encarga de detectar si se escriben frases similares, con mayúsculas, minúsculas, etc.).
- Respuestas de texto: las posibles respuestas del chat bot a las Expresiones de Usuario definidas.
-
Acción y parámetros: en este apartado se escribirán las diferentes acciones a realizar en Athento. Las acciones disponibles son:
- Seleccionar espacio: esta acción seleccionará el espacio en el que se creará el documento requerido (esquema: seleccionar-serie, seleccionar-serie{<nombre de la serie>}).
- Subir/actualizar binario principal: esta acción actualizará el binario de un documento (esquema: update-principal-binary).
- Rellenar campo: esta acción rellenará un campo específico (esquema: set-metadata-type-value{<slug del tipo de metadatos>}).
Además, el agente dispone de dos booleanos importantes:
- Cumplimiento: en esta sección de Intent, hay dos opciones. "Enable webhook call for this Intent" debe estar marcada para todos los intents, como se muestra en la siguiente imagen:
- Establecer esta intent como final de conversación: esta opción debe estar marcada cuando la Intent actual sea el final de un flujo de conversación (cuando se alcance este punto final, se ejecutarán las acciones decididas desde las intents anteriores en Athento).
Conectar DialogFlow con Athento
Desde la Administración Avanzada, en Permisos de Clave API > Claves API, hay que crear la clave que permitirá la conexión con Dialogflow.
Sólo hay que darle un nombre. Una vez guardado, la clave API aparecerá en la pantalla. Hay que copiarla e ir a DialogFlow.
Desde DialogFlow, en la sección "Fulfillment", activar la opción "WEBHOOK" y rellenar los siguientes campos:
- URL: escribir https://SUBDOMAIN.athento.com/dialogflow/api/fulfillment/execute/ donde SUBDOMINIO es el nombre de su instalación de Athento.
- Añadir un HEADER que tenga como clave "authorization" y como valor "Api-Key <api key>" donde <api key> debe ser sustituido por el valor de la clave que se copió de Athento.
Ejemplo de caso de uso
En este caso de uso se define un chat bot que gestionará la entrada de currículums de trabajo en una empresa. Este flujo creará un documento en el espacio correspondiente con los campos solicitados por el chat bot.
Ejemplo de conversación:
Esto se configura en Dialogflow de la siguiente manera:
Intento de bienvenida: este intento no tiene acciones.
Welcome-no intent: este intent es el fin de la conversación si el usuario ha respondido no a la pregunta "¿Solicitaría un trabajo con nosotros?". Debe copiar el texto del contexto de entrada (welcome-followup) y establecerlo en el contexto de salida con una duración de 0 en todas las intenciones excepto en la de bienvenida.
Welcome-yes intent: en este intent se empieza a construir el documento que se quiere crear en Athento, por lo que hay que indicar el espacio donde se quiere guardar el documento. La acción tiene que ser select-serie{<nombre>}
Welcome-yes-email intent: intent para rellenar el campo de correo electrónico con la acción set-metadata-type-value. Utiliza una entidad del sistema para validar si el usuario está respondiendo con un email bien formado. Si se utiliza entidades que no son de tipo any (en este caso, sys.email) hay que cambiar su "PARAMETER NAME" por la palabra "entities". Las entidades que son "sys.any" se pueden mantener tal cual.
Welcome-yes-email-name intent: intent para rellenar el campo nombre con la acción set-metadata-type-value. En la respuesta de texto, se puede poner $<parameter name of entity> para que el agente responda con lo que se ha detectado en la entidad.
welcome-yes-email-name-phone intent: intención de rellenar el campo teléfono con la acción set-metadata-type-value.
Welcome-yes-email-name-phone-job intent: intento de rellenar el campo de elección de trabajo con la acción set-metadata-type-choice-value. En este caso, se definió una entidad personalizada con los valores internos del campo de elección, y los sinónimos que puede tener cada elección.
Custom entity:
Welcome-yes-email-name-phone-job-git intent: intent para rellenar el campo de enlace a github con la acción set-metadata-type-value. También acepta un no por respuesta si el usuario no tiene un perfil de github, en cuyo caso no se rellenará el campo.
Welcome-yes-email-name-phone-job-git-experience intent: intent para rellenar el campo de elección de experiencia con la acción set-metadata-type-choice-value. También en este caso, se definió una entidad personalizada con los valores internos del campo choice, y los sinónimos que puede tener cada choice. Además, como este campo es más abstracto, se añade la entidad "any" para que el flujo siga respondiendo a lo que responda el usuario, aunque no detecte la entidad de experiencia.
Welcome-yes-email-name-phone-job-git-experience-openanswer intent: intención de rellenar el campo de respuesta abierta con la acción set-metadata-type-value. También acepta un no por respuesta si el usuario no desea escribir una respuesta abierta, en cuyo caso no se rellenará el campo.
Welcome-yes-email-name-phone-job-git-experience-openanswer intent: intención de subir el binario principal del documento con la acción update-principal-binary. Si se utiliza la interfaz Kommunicate, debe escribirse KOMMUNICATE_MEDIA_EVENT en EVENTS para validar que efectivamente se ha respondido a un binario.
Comentarios
0 comentarios
Inicie sesión para dejar un comentario.