Graphlogic-latam
  • Getting Started
    • 🚀Guía de documentos
    • 📑Tutoriales de bots
      • 📋Creación de un robot de encuestas sencillo
      • ☔Creación de un bot con integración del servicio meteorológico
      • 🗣️Crear un bot con reconocimiento de voz
    • ❓PREGUNTAS FRECUENTES
    • 📔Qué preparar antes de crear tu Bot
      • 🔘Definir el objetivo y la funcionalidad necesaria
      • 💾Preparar los datos para el robot
      • 🧍Estilo de comunicación y humanización del bot
    • 📕Qué es Graphlogic.ai
    • 🗓️Historia de los comunicados
    • ▶️Cómo empezar a utilizar la Plataforma
      • 👨‍🦱Cuenta de usuario de la plataforma
        • 👨‍🦱Registro y autorización
        • 🏢Cuenta de usuario y empresa
        • 👨‍👨‍👦Funciones y gestión de usuarios en la empresa
        • 💵Suscripción y pago
  • 💻Vista general de las pestañas de la plataforma
    • 📁Pestaña Panel de control (Carpetas)
    • 📊Ficha Recursos
  • 🛠️Cómo crear tu Bot
    • 💡Proyecto: creación, edición, clonación y supresión
    • 🧾Agente y sus versiones
    • 🕵️‍♂️Agente: creación, edición y supresión
    • 📗Creación de un agente en Excel
    • 🔁Agente: exportación, importación, clonación y sustitución
    • 🗳️Visión general de BotBuilder y sus pestañas
      • 🗒️Pestaña Diseñador de agentes
      • 🎴Pestaña Intentos
      • 📖Pestaña Vocabularios
      • ↗️Ficha Solicitudes externas
      • ⬇️Fuentes de datos de preguntas y respuestas
    • 🚧Cómo construir el guión de un Agente
      • 🗃️Creación y tipos de ranuras y sub ranuras
      • 🎚️Desplazamiento y clonación de ranuras y ramas de script
      • 🧾Navegación por el árbol de guiones
      • 🖊️Cómo crear y configurar las franjas horarias
        • ▶️Inicio de un guión | Ranura de inicio
        • ⬇️Correos y notificaciones | Ranura para solicitudes entrantes
        • ⌚Activación del chatbot con un temporizador | Ranura del temporizador
        • 🛎️Correos en WhatsApp | Ranura de notificación
        • 📎Envío de archivos a usuarios bot | Ranura para archivos adjuntos
        • 📃Respuestas de texto | Ranura de texto
        • ⬆️External Request slot (Sending Requests to APIs from script)
        • 🗣️Transferencia del diálogo al operador | Cambiar ranura de modo de chat
        • 🧎Esperar el mensaje del usuario Bot | Esperar el espacio de reacción
        • 📚Bifurcación del script en función de las condiciones| Ranura de regla de transición y subranura de c
        • 7️⃣Botones en los mensajes del bot | Ranura de menú de botones +Subranuras de botones y Fallback
        • 🧏‍♂️Comprobación del formato de los datos introducidos por el usuario del bot| Ranura Expresión regular
        • 💡Reconocimiento de intenciones | ranura NLU + subranuras Intent y Fallback
        • 🤸‍♂️Transiciones a partes aleatorias del guión | Ranura de salto
        • 📑Recogida de datos del usuario Bot | Slot Llenado de slot
        • 💾Crear y guardar variables de contexto | Ranura de memoria
        • 📘Reconocimiento de entidades | Ranura para sinónimos
        • 🔄Implementación de bucles en un script | Repetición de slotGraphlogic.ai documentación
        • 🪩Reconocimiento de idiomas
        • 👩‍💻Generar una respuesta basada en una fuente de datos |Q&A
    • 🗨️Reconocimiento del lenguaje natural en los agentes
      • 🗣️Reconocimiento del lenguaje natural
      • 📈Las 5 intenciones principales
      • 🔒Reconocer entidades | Vocabularios
    • ✒️Sintaxis
    • ↕️Orquestación de agentes
    • ☎️Transferencia a un operador
    • 📌Opción de punto de guardado
    • ↘️Estado de la comunicación. Opción Continuar conversación
  • 🔀Cómo utilizar el contexto del chat en su agente
    • 🔡Variables de contexto
    • ✅Variables de contexto del sistema
    • 🖥️Variables de contexto del canal
    • 🚹Variables de contexto del usuario
  • ✅Cómo formar con éxito a su agente
    • ✅Requisitos para el éxito de la formación de agentes
    • 📋Probar el script del Agente
    • 👨‍💻Comprobación y mejora del reconocimiento de agentes: selección del umbral de confianza
    • ⚙️Formación adicional del Agente desde la pestaña Análisis
  • ⚛️Cómo desplegar su Agente en los canales
    • 🤖Publicar un proyecto
    • 🖥️Despliegue del proyecto en los canales
    • 🗨️Mensajeros
      • Telegram
      • 360Dialog (WhatsApp)
      • 360Dialog (nube)
      • Viber
      • Line messenger
      • VK Teams
      • 📇Widget
      • Facebook Messenger
    • 👨‍💻Plataformas omnicanal
      • Jivo
      • Chat2Desk
      • Bitrix24
      • Livetex
      • Edna Chat Center
      • Edna Pulse
      • Webim (External Bot API 1.0)
      • Webim (API de bots externos 2.0)
      • Omnidesk
    • Mensajeros de empresa
      • Microsoft Teams
    • API de mensajería
      • Chat API
      • 🗣️API del buzón de voz
        • API de voz
    • Compatibilidad con Markdown en los canales de fin de agente
  • Uso de agentes
    • Límites
  • 📈Cómo comprobar Analytics para sus Agentes
    • Ficha Análisis y filtros
    • Historial del chat
    • Informe del contexto del chat
    • Informe de estadísticas de slot
    • Informe Stop Slots
    • Informe de uso del proyecto
  • 🧷Información complementaria
    • 🖥️Capacidades funcionales y no funcionales de la Plataforma
    • Otros
      • 🏅Buenas prácticas en el diseño de diálogos
      • 💻Requisitos del sistema para trabajar con la consola de usuario
      • 📚Recursos
    • Solicitud de agrupación de diálogos
  • Integración de canales
  • 🔑Copia de los recursos e infraestructuras necesarios
  • 📝Tarea de incorporación
Powered by GitBook
On this page
  • Creación de solicitudes externas
  • Formación y pruebas de agentes
  1. Getting Started
  2. Tutoriales de bots

Creación de un bot con integración del servicio meteorológico

PreviousCreación de un robot de encuestas sencilloNextCrear un bot con reconocimiento de voz

Last updated 3 months ago

La Plataforma ofrece capacidades de integración con varios sistemas externos, como CRM u otros servicios con APIs abiertas. Mientras que el artículo Creación de un bot de encuesta sencillo nos enseñó a crear bots sencillos de pulsar botones, este artículo profundiza en la integración de un bot con un servicio meteorológico. Del mismo modo, el bot puede integrarse con sistemas CRM.

Creación de solicitudes externas

El primer paso es crear una Solicitud Externa - esta es una funcionalidad que permite al Agente acceder a sistemas externos vía API. Utilizando External Requests, enviaremos datos al servicio meteorológico y recibiremos la información necesaria para el Script.

  1. Para crear su primera Solicitud Externa, vaya a la pestaña Recursos haciendo clic en Recursos en el panel superior.

  1. Vaya a la sección de Solicitudes externas. Más información sobre la pestaña: Pestaña de Solicitudes Externas.

  1. Cree una nueva Solicitud Externa pulsando el botón Crear nueva.

  1. Nombre la solicitud "weather", mantenga el método de solicitud como GET e introduzca {{ url }} en el campo Endpoint. Este formato se utiliza para especificar Variables de Contexto de Usuario en este campo. Para obtener más información sobre las variables de contexto, consulte: Variables de Contexto. Para más detalles sobre las Variables de Contexto de Usuario consulte: Variables de contexto de usuario. Más adelante crearemos esta Variable de Contexto en nuestro Script de Agente.

  1. En la Plataforma, existe un Límite en el tamaño del cuerpo recibido en respuesta a una Solicitud Externa . Si el cuerpo excede los límites, entonces la variable raw_response, que contiene la respuesta del sistema externo a la Solicitud Externa, no registra la respuesta, sino el texto de error. Para obtener el texto de la respuesta, es necesario configurar su análisis sintáctico escribiéndolo en las Variables de Contexto de Usuario en la pestaña Respuesta. Para ello, vaya a la pestaña Respuesta, designada para analizar la respuesta a una solicitud, e introduzca "result" en el campo Variable y {{ body }} en el campo Valor. De esta forma, todo el cuerpo de la respuesta se almacenará en la variable result y estará disponible para su uso en el Script del Agente. Para más información sobre la pestaña Respuesta: Pestaña de Solicitudes Externas

⁠

  1. Guarde la solicitud pulsando el botón CREAR.

  2. Cree otra solicitud externa haciendo clic en el botón Crear nuevo. Nómbrela "weather 2", mantenga el método de solicitud como GET e introduzca {{ url2 }} en el campo Endpoint. Más tarde crearemos esta Variable de Contexto en nuestro Script de Agente.

  1. Vaya a la pestaña Respuesta e introduzca "result2" en el campo Variable y {{ body }} en el campo Valor para guardar todo el cuerpo de la respuesta en la variable result2 y utilizarlo en el Script del Agente.

⁠12. Guarde la solicitud pulsando el botón CREAR.

Creación de un guión de agente

Las Solicitudes Externas están listas, ahora necesita crear el Agente y su Script.

  1. Vaya a la pestaña Cuadro de mandos haciendo clic en el botón Cuadro de mandos del panel superior

  1. Cree un nuevo Agente, como se describe en el artículo Creación de un Bot de Encuesta Simple.

  1. Ve a BotBuilder y crea una Ranura de Texto con el texto "¡Hola! Soy un bot meteorólogo, puedo decirte el tiempo que hace en cualquier ciudad. ¿Quieres probar?".

  1. A continuación, añada los botones "Sí" y "No".

  1. Después del botón "No", añada una ranura de texto con el texto "Puede volver en cualquier momento" y una ranura de espera de reacción.

  1. Después de la subslot de reserva, añada una ranura de texto con el texto "Por favor, seleccione uno de los botones" y una ranura de salto con la transición de vuelta al menú de botones.

  1. Después del botón "Sí", añada una ranura de texto con el texto "A continuación, escriba el nombre de la ciudad" y una ranura de espera de reacción.

  1. A continuación, añada una Ranura de Memoria. Esta Ranura le permite escribir datos en Variables de Contexto de Usuario. Más información sobre la Ranura de Memoria: Crear y Guardar Variables de Contexto | Ranura de Memoria

⁠

  1. En esta Memory Slot se compilará el Endpoint para la primera de nuestras External Requests. El formato de URL para la primera solicitud es: http://api.openweathermap.org/geo/1.0/direct?q={nombre de la ciudad}&appid={clave de API}. Tenemos que componer una URL sustituyendo el nombre de la ciudad introducido por el Usuario Bot y su clave personal de API.

a. Nombra el Slot "componer url para solicitud".

b.Introduzca el valor url en el campo Clave, y el valor 'http://api.openweathermap.org/geo/1.0/direct?q={{ client_message }}&appid=API key' en el campo Valor, donde API key es la clave del paso anterior, y {{ client_message }} es la Variable de Contexto client_message, que contiene el mensaje del Usuario Bot. En la ranura de memoria, la variable de contexto destinada a la sustitución debe especificarse en un formato concreto: debe ir entre comillas dobles. Todo el valor del campo debe ir entre comillas para que se escriba en la variable como una cadena. De esta forma, la URL de la primera petición será compilada y almacenada en la Variable de Contexto url, que previamente especificamos en la Petición Externa como Endpoint.

c. Guarda la ranura.

⁠11. Después de la Ranura de Memoria, añada una Ranura de Solicitud Externa - se utilizará para integrarse con el servicio meteorológico. Introduzca el nombre "recibiendo coordenadas" en el campo Nombre. En el campo Solicitud, seleccione Solicitud Externa llamada "meteorología".

⁠12. Si el usuario especifica un nombre de ciudad inexistente, recibiremos una respuesta vacía del servicio meteorológico, es decir, la variable de contexto raw_response tendrá el valor []. Usaremos esto en el Script para pedir al Usuario Bot que introduzca un nombre diferente. Para hacer esto, agregue una Ranura de Regla de Transición después de la Ranura de Solicitud Externa - permite la ramificación del Script del Agente dependiendo de las condiciones especificadas. Leer más: Transiciones a partes aleatorias del script | Ranura de salto. Nombre la Ranura "city check".

⁠13. Al crear una regla de transición, se generan automáticamente dos subslots de condición. Si una condición en una Sub-ranura es verdadera, el Agente procederá a la Rama de Script que sigue a esta Sub-ranura de condición.

⁠14. Necesitamos comprobar si el valor de la Variable Contextual raw_response es []. Abra la Subslot "main" e introduzca {{ raw_response == '[]' }} en el campo Condición. A continuación, borre el campo Nombre para que la expresión del campo Condición se muestre en el Árbol de Script en la Subranura condición.

  1. Después de esta Subslot, añada una Text Slot con el texto "I don't know such a city. Please enter a different name." y el Jump Slot con una transición al Wait For Reaction Slot, donde el Agente espera a que el Usuario Bot introduzca el nombre de la ciudad.

⁠16.Si la ciudad se encuentra en el servicio meteorológico, se recibirá una respuesta en el siguiente formato:

1. [

     {

        "name":"city name",

        "local_names":{

          city name in different languages

        },

        "lat": latitude,

        "lon": longitude,

        "country":"code of the country",

        "state":"name of the country"

     }

  ] 
  1. Después de la subranura FALLBACK_CONDITION, añada una ranura de memoria para extraer las coordenadas de la ciudad de la respuesta recibida del servicio.

a. Nombre la ranura "guardar coordenadas".

b. Introduzca el valor lat en el campo Clave y el valor {{ resultado[0].lat }} en el campo Valor. ​

c. Añada otro par Clave-Valor haciendo clic en Añadir nuevo campo.

⁠d. Introduzca el valor lon en el campo Clave y el valor {{ resultado[0].lon }} en el campo Valor.

e. Así se accede al primer elemento de la matriz de resultados y a las variables lat y lon que contiene: los valores de latitud y longitud. Más información sobre la sintaxis Plataforma: Sintaxis.

  1. En el mismo Slot podemos recoger el Endpoint para la segunda External Request. El formato de URL para la segunda solicitud es: https://api.openweathermap.org/data/2.5/weather?lat={lat}&lon={lon}&appid={clave API}. Tenemos que componer una URL sustituyendo las coordenadas de la ciudad introducidas por el Usuario Bot y nuestra clave API personal.

a. Añada otro par Clave-Valor. Introduzca el valor url2 en el campo Clave y el valor 'https://api.openweathermap.org/data/2.5/weather?lat={{ lat }}&lon={{ lon }}&appid=API key' en el campo Valor , donde API key es el valor clave del paso 8 y {{ lat }} y {{ lon }} son variables de coordenadas. Esto compondrá la URL para la segunda petición y la almacenará en la Variable de Contexto url2, que especificamos previamente en la Petición Externa como el Endpoint.

⁠b. Guarda la ranura.

  1. A continuación, cree una ranura de solicitud externa denominada "recibir el tiempo" y seleccione en ella la solicitud externa "tiempo 2".

⁠20. En respuesta a la solicitud, esperamos recibir una respuesta en el siguiente formato (la respuesta tiene un formato de datos Diccionario):

{

    "coord": {

     city coordinates

    },

    "weather": [

      {

        "id": 501,

        "main": "weather",

        "description": "weather description",

        "icon": "10d"

      }

    ],

    "base": "stations",

    "main": {

      "temp": temperature in Kelvin degrees,

      "feels_like": what the temperature feels like in Kelvin degrees,

      "temp_min": minimal temperature in Kelvin degrees,

      "temp_max": maximal temperature in Kelvin degrees,

      "pressure": atmospheric pressure,

      "humidity": air humidity,

      "sea_level": atmospheric pressure on sea level,

      "grnd_level": atmospheric pressure on ground level

    },

    "visibility": visibility in meters,

    "wind": {

      data about wind

    },

    "rain": {

     data about rain

    },

    "clouds": {

      data about clouds

    },

    "dt": 1661870592,

    "sys": {

      system data

    },

    "timezone": timezone,

    "id": 3163858,

    "name": "name of the city",

    "cod": system parameter

  }         
  1. El Agente mostrará los datos de temperatura al Usuario Bot. Para ello, añada una ranura de memoria después de la ranura de solicitud externa.

a. Asigne a la ranura el nombre "guardar datos meteorológicos".

b. En primer lugar, vamos a guardar el valor del elemento "main", que contiene los datos de temperatura, en una variable. La respuesta del servicio está contenida en la variable result2, que tiene el formato de un diccionario. Se accede a un elemento del diccionario mediante corchetes que indican el nombre del elemento. Introduzca el valor "var1" en el campo Clave, y el valor {{ result2['main'] }} en el campo Valor.

c. A continuación, guarde los valores de la temperatura real y sentida del aire. Para ello, añada otros dos pares Clave - Valor. En los campos Clave, introduzca los valores var2 y var3, y en los campos Valor - {{ var1['temp'] }} y {{ var1['feels_like'] }}.

⁠d. Como el servicio devuelve los datos de temperatura en grados Kelvin, vamos a convertirlos a grados Celsius. La temperatura en grados Celsius se calcula mediante la fórmula {temperatura en grados Kelvin}-273,15. Añade otros dos pares Clave - Valor: en los campos Clave, escribe "temperatura" y "se siente_como", y en los campos Valor, introduce {{ var2 - 273.15 }} y {{ var3 - 273.15 }}, respectivamente. Más información sobre las operaciones matemáticas en la sintaxis: Operaciones matemáticas.

  1. Después de la ranura de memoria, añada una ranura de texto con el texto "La temperatura en {{ client_message }} es {{ temperature }} ºC en este momento. Se siente como {{ feels_like }} ºC. ¿Le gustaría probar con otra ciudad?" y una Ranura de Salto con а transición al menú de botones.

⁠23. Esto concluye la creación del Script del Agente. Ahora debería tener el siguiente Script:

Formación y pruebas de agentes

Después de crear el Script del Agente, necesita entrenar al Agente y probar su Script.

  1. Para entrenar al Agente, haga clic en el botón ENTRENAR situado en la esquina superior derecha de BotBuilder. Se iniciará el proceso de Validación de Script. Si el Script cumple los requisitos, el Agente será entrenado. En caso contrario, la Validación del Script fallará y aparecerá un texto de error en la esquina inferior derecha. Leer más: Requisitos para entrenar con éxito a un Agente

  1. Si se detectan errores en el Script, identifique las áreas problemáticas utilizando las directrices descritas en el artículo Requisitos para una formación satisfactoria del Agente y corrija los errores. Después de esto, vuelva a entrenar al Agente.

  2. Una vez finalizado el AgentTraining, abra el Debug Widget pulsando el botón Debug.

⁠4.En el Widget de Depuración que se abre, envíe un mensaje al Agente para iniciar el Script.

  1. Comunicarse con el Agente, recorriendo todos los pasos del Script, mientras se comprueba que no hay errores en los textos y que la lógica del Script es correcta.

  2. Si encuentra errores, corríjalos, recordando volver a entrenar al Agente después de cada cambio para que surta efecto. Si todo es correcto, enhorabuena, ¡su Agente está listo!

⁠

Regístrese en el servicio meteorológico en .Este servicio le permite realizar hasta 1.000 llamadas API al día de forma gratuita.

Las solicitudes que necesitamos se encuentran en — esta solicitud permite recuperar las coordenadas de la ciudad, y —esta solicitud facilita la recuperación meteorológica basada en las coordenadas de ubicación.

Regístrese en la Plataforma o acceda a una cuenta existente utilizando el enlace . Se le redirigirá a la página Carpetas de empresa. Más información sobre el registro y la autorización: Registro y autorización.

Encuentre su clave API en y copie el valor del campo Clave.

📑
☔
https://home.openweathermap.org/users/sign_up
https://openweathermap.org/api/geocoding-api#direct
https://openweathermap.org/current
https://app.chatbots.gms-worldwide.ch/platform
https://home.openweathermap.org/api_keys
5KB
Support-Weather-2024-04-15-15-33.cfg