Cómo crear un chatbot usando Dialogflow Enterprise Edition y Dialogflow API V2

En este tutorial, aprenderemos cómo crear un chatbot usando Dialogflow Enterprise Edition y Dialogflow API V2. Este tutorial es una adición a la lista de tutoriales que cubre Google Cloud y su increíble conjunto de productos y servicios.

Cree un chatbot con Dialogflow Enterprise Edition y Dialogflow API V2

Al final de este tutorial, comprenderá mejor lo siguiente.

  1. Introducción a Dialogflow
  2. Introducción a Dialogflow Enterprise Edition
  3. Cómo crear un agente en Dialogflow
  4. Comprensión de intenciones y entidades
  5. Construir el agente de servicio al cliente
  6. Cumplimientos y funciones en la nube y API Dialogflow V2
  7. Cómo crear un Chatbot de agente de servicio al cliente
  8. Almacene la información del ticket en Cloud Datastore
  9. Conclusión
  10. Referencias

Como tenemos mucho que cubrir en este tutorial, comencemos.

1. Introducción a Dialogflow:

Dialogflow es un conjunto de desarrollo de extremo a extremo para crear interfaces de conversación para sitios web, aplicaciones móviles, plataformas de mensajería populares y dispositivos IoT. Se puede usar para crear chatbots, asistentes de voz, etc. especialmente relevantes que sean capaces de tener interacciones naturales y ricas con sus usuarios.
Dialogflow también funciona con el aprendizaje automático para reconocer la intención y el contexto de lo que dice un usuario, lo que permite que una interfaz de conversación proporcione respuestas altamente eficientes y precisas. Entonces, en el punto de este tutorial, Google ofrece dos versiones de Dialogflow.

  • Dialogflow Standard Edition: Gratis para todos
  • Dialogflow Enterprise Edition: oferta premium y también servicio de pago por uso.

2. Introducción a Dialogflow Enterprise Edition:

Dialogflow Enterprise Edition está disponible como parte de Google Cloud Platform (GCP). Proporciona interacciones ilimitadas de texto y voz, cuotas de uso de mayor volumen y soporte de Google Cloud. Dialogflow Enterprise Edition es una oferta premium, disponible como un servicio de pago por uso.
Dialogflow Enterprise Edition es ideal para empresas que necesitan un servicio de nivel empresarial que se pueda escalar fácilmente para admitir cambios en la demanda de los usuarios.

3. Cómo crear un agente en Dialogflow Enterprise Edition:

En la edición estándar de Dialogflow, puede ir a dialogflow.com para crear su agente. Mientras, para Dialogflow Enterprise Edition, creamos un proyecto primero en Google Cloud Platform y utilizamos la API de Dialogflow. Siga los pasos a continuación sobre Cómo crear un chatbot usando Dialogflow Enterprise Edition y Dialogflow API V2.

3.1 Configuración y autenticación del proyecto:

En primer lugar, necesitamos crear un proyecto de Google Cloud Platform usando https://console.cloud.google.com/

  • Crear o seleccionar un proyecto GCP existente.
  • Habilite la API de Dialogflow V2 para ese proyecto.
  • Haga clic en HABILITAR APIS Y SERVICIOS
  • Busque la API de Dialogflow en la barra de búsqueda y haga clic en ella.
  • Continúe y haga clic en ACTIVAR LA API.
  • 3.2 Crear un agente de Dialogflow.
  • Después de habilitar la API, haga clic en la pestaña Agente de Dialogflow y elija un nombre de agente para su proyecto.
  • Nombre del agente
  • Idioma
  • Zona horaria
  • Haga clic en el botón Crear para crear un Agente de Dialgflow Enterprise Edition.
  • Por lo tanto, para el resto de nuestro tutorial, estaríamos creando el agente que creamos en GCP usando dialogflow.com. Entonces, haga clic en Abrir agente en dialogflow.com
  • Por lo tanto, una vez que haga clic en el enlace, también debería pedirle que elija su cuenta de Google. Elija la misma cuenta de Google con la que creó el proyecto en primer lugar.
  • Ahora también debería mostrarle una página para permitir que el flujo de diálogo vea y administre datos. Finalmente, haga clic en Permitir.
  • Además, revise la configuración de la cuenta y haga clic en ACEPTAR.
  • Finalmente, ahora verá el panel de Dialgflow y en el momento de este tutorial, también puede ver un mensaje que dice que “Dialogflow API V2 se lanzó oficialmente. Ahora es la API predeterminada para todos los nuevos agentes de Dialogflow y todas las nuevas características solo se lanzarán en V2. Aprenda cómo migrar sus agentes V1 aquí ".

3.3 Crear una cuenta de servicio.

  • Antes de continuar con el flujo de diálogo, asegurémonos también de que tenemos algunos elementos más configurados.
  • Desde la página de cuentas del servicio Google Cloud, seleccione su proyecto.
  • Debería ver una pantalla similar a la que se muestra a continuación.
  • Descargue una clave privada como JSON.
  • Desde la consola GCP, vaya a API y servicios y haga clic en credenciales.
  • Haga clic en Crear credenciales y elija Clave de cuenta de servicio.
  • Seleccione su cuenta de servicio en el menú desplegable, elija JSON y haga clic en Crear. Esto descargará la clave JSON a tu computadora. Guárdelo de forma segura.
  • Establezca la variable de entorno GOOGLE_APPLICATION_CREDENTIALS en la ruta del archivo JSON que contiene su clave de cuenta de servicio. Abra la ventana Terminal o símbolo del sistema y ejecute el siguiente comando según su sistema operativo.

Ejemplo: Linux o macOS

Reemplace [RUTA] con la ruta del archivo JSON que contiene su clave de cuenta de servicio.

export GOOGLE_APPLICATION_CREDENTIALS = "[PATH]"

Por ejemplo:

export GOOGLE_APPLICATION_CREDENTIALS = "/ home / user / Downloads / service-account-file.json"

Ejemplo: Windows

Reemplace [RUTA] con la ruta del archivo JSON que contiene la clave de su cuenta de servicio y [FILE_NAME] con el nombre del archivo.

Con símbolo del sistema:

establecer GOOGLE_APPLICATION_CREDENTIALS = [RUTA]

3.4 Instalar e inicializar Cloud SDK.

  • Siga las instrucciones que se muestran en el documento.
  • Finalmente, siguiendo esos pasos, debe obtener un archivo de clave de cuenta de servicio (en JSON) que le permitirá autenticarse en la API de Dialogflow V2 en este Inicio rápido:
  • gcloud auth enable – service – account - key – file = service – account – key – file
  • Una vez que haya seguido con éxito los pasos anteriores, habrá activado las credenciales de la cuenta de servicio.

4. Comprensión de intenciones y entidades en Dialogflow:

Intenciones: una intención representa un mapeo entre lo que dice un usuario y también qué acción debe tomar su software.

Las interfaces de intención también tienen las siguientes secciones:

  • Frases de entrenamiento
  • Acción
  • Respuesta
  • Contextos

Entidades: las entidades son herramientas poderosas que se utilizan para extraer valores de parámetros de entradas de lenguaje natural. Cualquier información importante que desee obtener de la solicitud de un usuario tendrá una entidad correspondiente.

También comprenderá mejor las intenciones y las entidades a medida que avancemos a la siguiente sección del tutorial.

5. Construya el Agente de Servicio al Cliente:

Como estamos creando un chatbot de Agente de Servicio al Cliente, también tendremos que dar la bienvenida o saludar al cliente. Podemos lograr esto a través de la intención de bienvenida.

5.1 Bienvenido al usuario

  • Haz clic en Intención de bienvenida.
  • En las Frases de capacitación, agregue algunas frases que los usuarios usarían para comenzar la conversación.
  • Además, el siguiente paso sería agregar la respuesta apropiada del chatbot para saludar al usuario y solicitarle una pregunta específica.
  • Finalmente, haz clic en Guardar intento. También debería ver un mensaje emergente que dice que se completó la capacitación del agente.

5.2 Crear intención de envío de ticket

  • Haga clic en CREAR INTENTO. Esto creará una nueva intención en la que deberá especificar un nombre para su intención. Llamémoslo Enviar ticket.
  • Después de eso, haga clic en Frases de capacitación para agregar frases sobre lo que un usuario podría decir.
  • Una vez que haya agregado con éxito algunas frases de capacitación, agreguemos una respuesta para obtener más información del usuario.
  • Haga clic en Agregar respuesta y escriba una respuesta a algo como esto. ¡Seguro! Te puedo ayudar con eso. Por favor proporcione su nombre para el boleto.
  • Haga clic en Guardar para guardar la intención de envío de ticket.

5.3 Crear intención de seguimiento para recopilar el nombre

  • Para que podamos crear una intención de seguimiento. Sigue los pasos a continuación.
  • Haga clic en Intentos en su panel de navegación izquierdo.
  • Coloque el mouse sobre la intención de Enviar ticket. Verá la opción Agregar intención de seguimiento hacia el lado derecho.
  • Esto debería darte una lista desplegable. Elija Personalizado de la lista.
  • Ahora debería ver una intención de seguimiento creada. Haga clic en Enviar ticket - personalizado.
  • Cambiemos el nombre a algo que tenga sentido. Cambie el nombre de la intención a Enviar ticket: recopilar nombre.
  • Agregue algunas frases de entrenamiento.
  • "Soy John"
  • "Mi nombre es Sachin"
  • "Soy Lucy"
  • También puede ver que resaltará automáticamente los nombres como Entities @ sys.given-name.
  • Además, en este momento, en acciones y parámetros, debería ver lo siguiente como se muestra a continuación.
  • Finalmente, agregue una respuesta para capturar más información del usuario. $ given-name contendrá el nombre del cliente.
  • "Gracias $ nombre de pila! ¿Cuál es tu número de teléfono?"
  • Guardar Intención para capacitar al agente.

5.4 Crear intención de seguimiento para recopilar el número de teléfono.

  • En primer lugar, desplace el mouse sobre Enviar ticket: recopilar la intención del nombre. Verá la opción Agregar intención de seguimiento hacia el lado derecho.
  • Esto debería darte una lista desplegable. Elija Personalizado de la lista.
  • Ahora debería ver una intención de seguimiento creada. Haga clic en Enviar ticket - recoger nombre - personalizado.
  • Cambiemos el nombre a algo que tenga sentido. Cambie el nombre de la intención a Enviar ticket - recoger teléfono.
  • Agregue algunas frases de entrenamiento. Estas son solo muestras.
  • mi número de teléfono es + 1231232432
  • el número de móvil es +1 234234234
  • +1234324234
  • Cambie la entidad de @ sys.number a @ sys.phone-number.
  • Finalmente, agregue una respuesta para capturar una información más del usuario. $ phone-number contendrá el nombre del cliente.
  • "¡Gracias! Ahora, por favor describa su problema ".
  • Guardar Intención para capacitar al agente.

5.5 Crear intención de seguimiento para recopilar la descripción del problema del cliente.

  • Al igual que en los pasos anteriores, cree una intención de seguimiento llamada Enviar ticket: recopilar descripción.
  • Agregue algunas frases de entrenamiento. Estos son solo datos de muestra para fines de demostración.
  • mi teléfono sigue reiniciando
  • problema con wifi
  • Problemas de Bluetooth
  • La pantalla no responde.
  • pantalla congelada
  • Deja las respuestas vacías. La razón por la que lo dejamos en blanco es porque queremos que las respuestas provengan de nuestro servidor después de capturar toda la información del usuario y generar un número de ticket para devolverlo al usuario como referencia.
  • Además, para poder vincularlo a un servidor o, en este caso, a las funciones de la nube, debemos habilitar el cumplimiento.
  • Haga clic en Fulfilments y active la llamada de webhook para este intento.
  • Haga clic en el botón Guardar para guardar el ticket Enviar - recopilar descripción.

6. Cumplimientos y funciones en la nube:

Fulfilments consta de Webhook y también Cloud Functions de firebase. Como estamos tratando de ver cómo crear un chatbot usando Dialogflow Enterprise Edition y Dialogflow API V2, también necesitamos aprender más sobre Webhook o Cloud Functions de Firebase.

Webhook: la configuración de un webhook le permite pasar información de una intención coincidente a un servicio web y obtener un resultado del mismo.

Funciones de la nube de Firebase: para pruebas e implementación simples de webhook, puede usar el área de Funciones de la nube para Firebase de la página Cumplimientos. En la mayoría de los casos, el nivel gratuito "Spark" de Firebase es todo lo que necesitará. Las limitaciones de nivel y la información de precios para los otros niveles se pueden encontrar en la página de precios de Firebase.

Para permitir:

  • Haga clic en Cumplimiento en el menú de la izquierda.
  • Además, habilite la alternancia para el Editor en línea.
  • Editor en línea: puede usar su propio código o copiar y pegar el código de abajo en el Editor en línea.
'uso estricto';
const http = require ('http');
// Importa la biblioteca del cliente Google Cloud
const Datastore = require ('@ google-cloud / datastore');
// Su ID de proyecto de Google Cloud Platform
const projectId = 'REPLACE_WITH_YOUR_PROJECT_ID';
// Instancia un cliente
const datastore = Datastore ({
  projectId: projectId
});
// El tipo para la nueva entidad
const kind = 'ticket';
// El tipo para la nueva entidad
const kind = 'ticket';
exportaciones.dialogflowFirebaseFulfillment = (req, res) => {
  console.log ('Dialogflow Request body:' + JSON.stringify (req.body));
  // Obtenga la ciudad y la fecha de la solicitud
  let ticketDescription = req.body.queryResult ['queryText']; // la incidencia es un parámetro requerido
  // let name = req.body.result.contexts [0] .parameters ['nombre-dado.original'];
  let username = req.body.queryResult.outputContexts [1] .parameters ['nombre-dado.original'];
  let phone_number = req.body.queryResult.outputContexts [1] .parameters ['número-teléfono.original'];
  console.log ('descripción es' + ticketDescription);
  console.log ('nombre es' + nombre de usuario);
  console.log ('número de teléfono es' + número_de_teléfono);
  función randomIntInc (bajo, alto) {
    return Math.floor (Math.random () * (alto - bajo + 1) + bajo);
  }
  let ticketnum = randomIntInc (11111,99999);
  // La clave del almacén de datos en la nube para la nueva entidad
  const taskKey = datastore.key (kind);
  // prepara la nueva entidad
  tarea constante = {
    clave: taskKey,
    datos: {
      descripción: ticketDescription,
      nombre de usuario: nombre de usuario,
      phoneNumber: phone_number,
      ticketNumber: ticketnum
    }
  };
  console.log ("incidencia es", tarea);
  // Guarda la entidad
  datastore.save (tarea)
  .then (() => {
    console.log (`Guardado $ {task.key}: $ {task.data.description}`);
    res.setHeader ('Content-Type', 'application / json');
    // Respuesta para enviar a Dialogflow
    res.send (JSON.stringify ({'cumplementText ': "He registrado correctamente su ticket, el número de ticket es" + ticketnum + ". Alguien del servicio de asistencia se comunicará con usted dentro de las 24 horas."}));
    //res.send (JSON.stringify ({'cumplementText ': "He registrado correctamente su ticket, el número de ticket es" + ticketnum + ". Alguien del servicio de asistencia se comunicará con usted dentro de las 24 horas.",'cumplementMessages ': "He registrado correctamente su ticket, el número de ticket es" + ticketnum + ". Alguien del servicio de asistencia se comunicará con usted dentro de las 24 horas."}));
  })
  .catch ((err) => {
    console.error ('ERROR:', err);
    res.setHeader ('Content-Type', 'application / json');
    res.send (JSON.stringify ({'discurso': "Se produjo un error al guardar, intente nuevamente más tarde", 'displayText': "Se produjo un error al guardar, intente nuevamente más tarde"}));
  });
}
  • Reemplace project_id con su propio ID de proyecto de la plataforma en la nube de Google en la línea 6. Debería encontrar el ID del proyecto en el tablero> Información del proyecto en la consola en la nube de Google.
  • Debido a que vamos a utilizar Google Cloud Datastore para almacenar la información del ticket, debemos agregar las dependencias necesarias en package.json.
  • Copie el código de abajo y agréguelo a su package.json en el editor en línea o simplemente agregue el código en la línea 20 para agregar la dependencia del almacén de datos en la nube.
{
  "name": "dialogflowFirebaseFulfillment",
  "description": "Este es el cumplimiento predeterminado para los agentes de Dialogflow que usan Cloud Functions para Firebase",
  "versión": "0.0.1",
  "privado": cierto,
  "licencia": "Apache Versión 2.0",
  "autor": "Google Inc.",
  "motores": {
    "nodo": "~ 6.0"
  },
  "guiones": {
    "start": "firebase serve - solo funciones: dialogflowFirebaseFulfillment",
    "deploy": "firebase deploy - solo funciones: dialogflowFirebaseFulfillment"
  },
  "dependencias": {
    "actions-on-google": "2.0.0-alpha.4",
    "firebase-admin": "^ 4.2.1",
    "firebase-functions": "^ 0.5.7",
    "dialogflow": "^ 0.1.0",
    "@ google-cloud / datastore": "^ 1.1.0",
    "dialogflow-cumplimiento": "0.3.0-beta.3"
  }
}
  • Haga clic en el botón DESPLEGAR para implementar nuestras funciones en la nube.
  • La implementación puede tardar unos segundos en completarse.
  • Nota: Las funciones en la nube anteriores se sirven con la nueva API Dialogflow API V2 o V2 ​​API. Por lo tanto, algunos de los códigos comentados en el archivo index.js se basaron en la API V1. Entonces, esto muestra claramente lo simple que es migrar de la API V1 a la V2 en Dialogflow. Haré un tutorial por separado sobre la migración de V1 a V2 API pronto.

7. Cómo crear un Chatbot de agente de servicio al cliente:

Finalmente, es hora de que pruebemos a nuestro agente e implementemos nuestro chatbot. Dialogflow nos permite integrar fácilmente a nuestro agente en múltiples plataformas como Google Assistant, Facebook Messenger, Slack, web, etc. en Integraciones de Dialogflow.

Para este tutorial, veremos cómo podemos crear nuestro agente e integrarlo en nuestro propio sitio web.

  • Haga clic en Integraciones en el menú de navegación izquierdo.
  • Habilitar demostración web
  • Aparecerá una ventana emergente con un enlace generado.
  • En primer lugar, haga clic en el enlace para ver su chatbot haciendo su magia.
  • Como resultado, también puede usar el código de inserción para agregar el chatbot a su sitio web.

8. Almacene la información del ticket en Google Cloud Datastore:

Finalmente, nuestro chatbot está en funcionamiento. Lo más notable es que si pasas por las funciones de la nube, estamos capturando los siguientes detalles sobre el cliente.

  • Capture la información del cliente
  • nombre de usuario
  • número de teléfono
  • descripción

8.1 Almacene los detalles en Google Cloud Datastore:

También podemos ver los detalles que capturamos a través de nuestro chatbot en nuestro Google Cloud Datastore.

  • Vaya a Google Cloud Console.
  • Haga clic en el menú de navegación para mostrar las opciones.
  • Elija Almacén de datos -> Entidades.
  • Por lo tanto, vea los datos capturados por el Chatbot con toda la información específica.
Google Cloud Datastore con información del ticket

9. Conclusión:

En conclusión, ha sido un tutorial largo, que cubre varios aspectos de cómo crear un chatbot usando Dialogflow Enterprise Edition y Dialogflow API V2. Además, también aprendimos cómo capturar la información del usuario y almacenarla usando Google Cloud Datastore. Por lo tanto, esto solo está rascando la superficie y las posibilidades de aprovechar Dialogflow y los servicios de Google Cloud son infinitas. He hecho todo lo posible para cubrir este tutorial con cada paso para que pueda aprender fácilmente a desarrollar tales aplicaciones. En el próximo tutorial, también aprenderemos cómo usar esto en forma de Google Assistant y también cómo podemos migrar de la API V1 a la API V2.

Finalmente, nos vemos en la próxima serie de tutoriales. Hasta entonces, consulte también mis otras publicaciones de tutoriales sobre Cómo crear una aplicación para el Asistente de Google con Dialogflow Enterprise Edition y Actions en Google, Análisis de opinión con la API de Google Cloud Natural Language y Análisis de entidad con la API de Google Cloud Natural Language y Primeros pasos con Flutter . Vea más tutoriales en techwithsach.com

10. Referencias:

  • Google Cloud Console
  • Obtenga más información sobre Dialogflow Enterprise Edition
  • Dialogflow Standard Edition
  • Cómo usar la nueva API de Dialogflow V2