Blog
>
Apps de mensajería
>
...

Cómo construir un chatbot con GPT usando la plataforma Landbot No-Code

Barbora Jassova
Editorial Manager, Landbot
Illustrator: Adan Augusto
como-construir-un-chatbot-con-gpt

A medida que la inteligencia artificial evoluciona, se producen grandes avances. Uno de los últimos y más sonados en IA es GPT-3, un excepcional modelo de procesamiento del lenguaje natural (PLN) desarrollado por OpenAI que emplea el aprendizaje para generar texto que se asemeja mucho al lenguaje humano.

¿Por qué es tan importante?

Significa un cambio absoluto para la creación de chatbot ya que en combinación con el constructor visual adecuado como Landbot, puede hacer que la construcción de bots de IA sea accesible a cualquiera.

En este tutorial paso a paso, te mostramos cómo crear un chatbot con GPT-3 para WhatsApp y hacerlo, sin escribir ni una sola línea de código, en caso de que no sea tu fuerte o simplemente quieres acelerar el desarrollo de chatbot. 

Aunque antes de empezar, vamos a aclarar un par de cosas que debes saber a la hora de trabajar con GPT.

Diferencias entre la API de GPT Completion  y la API de chat

OpenAI ofrece dos tipos principales de productos GPT: API de finalización (completion) y API de chat.

Estas dos API ofrecen características y ventajas diferentes, pero a menudo se consideran erróneamente intercambiables. Para obtener los mejores resultados, es esencial elegir la API adecuada para su caso de uso.

Los modelos de la API de finalización están diseñados para generar texto a partir de una pregunta o una entrada parcial. Destacan en tareas como la compleción de texto (como las sugerencias automáticas que ves al escribir un correo electrónico), la generación de texto y la traducción de idiomas. Se utilizan sobre todo para ayudar a escribir, generar contenidos o resumir.

Por otro lado, los modelos de la API de chat están específicamente entrenados para facilitar las interacciones conversacionales. Su objetivo es simular una conversación con una comprensión del lenguaje similar a la humana. Estos tipos de modelos son más adecuados para tareas que implican interacciones de ida y vuelta, proporcionar respuestas a las consultas de los usuarios y participar en aplicaciones basadas en el diálogo.

Los modelos de chat son mucho más difíciles de entrenar que los modelos de finalización.

Mientras que un modelo de finalización suele generar una única respuesta a una pregunta, un modelo de chat es capaz de manejar los turnos naturales de una conversación y puede mantener el contexto a través de múltiples entradas del usuario.

En definitiva, a la hora de elegir el modelo, se debe tener muy en cuenta cada caso de uso, el objetivo que desea alcanzar y las capacidades técnicas de su equipo.

Problemas y limitaciones de GPT

Los grandes modelos lingüísticos de PT no están exentos de problemas. 

Los problemas más comunes que es probable que encuentres son: 

  • Alucinaciones. Cuando un bot se equivoca y se inventa una respuesta, se habla de alucinación. Puedes intentar minimizar la probabilidad de que esto ocurra proporcionándole una pregunta muy clara y ajustando la temperatura lo más bajo posible. Aún así, no hay garantía de que tu bot no alucine de vez en cuando.  
  • Tiempos de espera. Como todas las APIs, de vez en cuando, GPT fallará o tardará demasiado en responder. Como verás en el tutorial a continuación, puedes ayudar a regular este problema añadiendo 'Response Routing' a tu Webhook. De esta forma, cuando falla, puedes sacar al usuario del bucle de conversación y ofrecerle un mensaje de error/intentar de nuevo o simplemente llevarle a un flujo alternativo basado en reglas en lugar de a una conversación con AI. 

Aunque no es posible eliminar estos problemas por completo, hay formas de mantenerlos bajo control para minimizar el impacto. Lo discutiremos más a fondo en el tutorial.

Cómo construir un Chatbot con GPT-3 sin codificar

En este tutorial, te mostraremos una plantilla GPT-3 prediseñada para WhatsApp. El bot en cuestión es un bot de satisfacción del cliente que fue diseñado para recopilar datos y resumir el incidente en caso de que un cliente no estuviera satisfecho con el servicio/producto. Utiliza el modelo Completions API. 

El artículo ofrece un paso a paso de la plantilla y los porqués y cómos detallados de todo lo que te encontrarás trabajando con ella.

Haz clic aquí para acceder a la plantilla WhatsApp-GPT-3 y seguir el tutorial.

NOTA: Si lo prefieres, puedes ver la grabación del seminario web de WhatsApp AI en el que se explica el mismo proceso:

1. Configurar las cuentas

Para poder reproducir o crear un chatbot similar, necesitarás registrarte o iniciar sesión en las cuentas de Landbot y OpenAI. Landbot ofrece una prueba gratuita. En el caso de OpenAI, recibirás un crédito gratuito de 5 dólares, que es suficiente para unas tres semanas de pruebas intensivas, aunque tendrás tres meses para gastarlo. En general, el precio de OpenAI depende del volumen de solicitudes y del modelo de GPT que vayas a utilizar. Sin embargo, es bastante rentable. 

En cuanto crees tu cuenta OpenAI, se te redirigirá a la zona de la clave API. Si no es así, simplemente haz clic en el icono de tu cuenta en la esquina superior derecha y selecciona "Ver claves API".

open ai api

2. Delinear/Revisar el propósito y el flujo del chatbot

Queremos que este bot de IA haga todo lo necesario para recopilar el número de pedido del cliente, la dirección de correo electrónico y un resumen del problema. A continuación, te debes conectar y enviar esta información a la base de datos de nuestro equipo de atención al cliente (en este caso, almacenada en Airtable) para comprobar que el correo electrónico y el número de pedido están verificados.

crear chatbot con gpt sin codigo

El flujo se divide en dos partes principales.

La primera parte es un bucle en el que GPT pedirá la información necesaria al usuario. El diálogo continuará hasta que el bot tenga todos los datos que se le ha ordenado recopilar. 

En la segunda parte del flujo, el bot va a crear un resumen de esta conversación y enviarlo a nuestra base de datos Airtable.

3. Configurar un mensaje de bienvenida

En primer lugar, debemos configurar el primer mensaje de apertura que el cliente recibirá por WhatsApp. La idea aquí es utilizar una pregunta sencilla y estructurada en forma de botón para evaluar la experiencia:

contrir un chabtbot usando gpt

La plantilla ofrece esta sencilla configuración, pero puedes editar el contenido de la pregunta como mejor te parezca. Como se trata de un bot de WhatsApp, significa que tendrás el nombre del usuario automáticamente, sin preguntar, y puedes usarlo para personalizar la conversación desde el principio. 

Ahora bien, como el GPT está pensado para recoger partes de incidencias, sólo los usuarios que pinchen en la cara triste van a conversar con el bot de IA. Los que hagan clic en la opción muy o medianamente satisfechos recibirán un simple "Gracias" como respuesta, y el chat se cerrará.

landbot chatbot reply buttons

Como la mayoría de las respuestas siguen este camino, la plantilla conecta el botón morado (por defecto) con el mensaje "Gracias" y cierra el chat. El botón predeterminado resulta especialmente útil en los casos en los que hay muchas respuestas diferentes que son importantes pero que no afectan a la dirección del flujo. No es necesario arrastrar una flecha desde cada respuesta individualmente.

Ahora, arrastraremos una flecha separada desde el botón "cara triste" para crear un flujo de IA para atender a los clientes insatisfechos.

4. Crear una "Memory Box" de la conversación

Antes de nada, vamos a crear un contenedor de almacenamiento para la conversación. Piensa en ello como una caja vacía que vas a ir llenando con la conversación a medida que se vaya creando.

¿Por qué es tan importante este paso? 

Cuando enviemos este cuadro al GPT, actuará como su memoria para que el bot no pregunte la misma información dos veces y nos ayudará a mantener un flujo conversacional lógico y útil. Sin ella, el GPT seguiría haciendo las mismas preguntas una y otra vez. 

Para crear la "caja", utilizaremos el bloque “Set a Variable”:

Como se trata de una plantilla, los campos de variables y valores ya están rellenados. 

Es importante tener en cuenta que la variable que almacena todos los datos de la conversación está en formato array. El campo “Type the value”(Escribe el valor) incluye corchetes vacíos, que representan el contenedor vacío donde se almacenará la conversación.

Nota: Siempre puedes crear tus propias variables para almacenar los datos recogidos por el chatbot. La mejor práctica es darles nombres descriptivos (por ejemplo, "@conversation_history" en nuestro caso) para que sepas exactamente cuál es la información que almacenan o almacenarán.

5. Conectar Flow a GPT 

En primer lugar, vamos a utilizar el bloque "Set a Variable" de nuevo para almacenar nuestra clave de API OpenAI. Este paso no es obligatorio si estás construyendo tu propio flujo. Sin embargo, es muy útil cuando se construyen plantillas, ya que hace que la configuración de la plantilla sea más fácil de editar. De hecho, gracias a esto, establecer la variable será prácticamente lo único que tendrás que hacer para activar la conexión.

crear un bot con gpt

Ve a tu cuenta OpenAI y copia tu clave API.

open ai api para chatbot

A continuación, podrías simplemente probar la conexión en el bloque Webhook. Aún así, para más claridad, vamos a explicar la configuración en caso de que desee reproducir la conexión desde cero.

Haz clic en el bloque Webhook para abrir el editor.

Verás que en el caso de esta plantilla, el campo "URL & Method" ya está rellenado con el método POST y una URL del modelo de competición.

Si tuvieras que rellenarlo tú mismo, encontrarás esta información en la documentación de la API de OpenAI en Completions > Create Completion.

open ai gpt completion api para chatbot

Así, incluso cuando se trabaja desde cero, todo lo que necesitas hacer es copiar y pegar la URL y establecer el comando POST.

A continuación, ve al segmento "Personalizar encabezado" del editor Webhook.

api key open ai gpt y landbot

Este es el espacio donde deberás introducir la autorización de la API.

Encontrarás esta información en el “Example request” del segmento “Create Completion”.

la autorización de la API

La clave de cabecera del cliente es "Authorization" y el valor es la palabra "Bearer" seguida de un espacio y tu clave API. 

Dado que has creado la variable de clave de API, la plantilla automáticamente extrae su API en el Webhook utilizando esa variable. 

La siguiente sección del bloque es la parte “Customize Body”. Una vez más, la plantilla ya está rellenada.

construir un chatbot con gpt sin codigo

Si tuvieras que hacer esta parte tú mismo, tendrías que consultar la sección “Example request” en la documentación de OpenAI Completions y copiar lo siguiente:

model prompt y tokens de gpt

Esta secuencia específica el: 

  • Modelo GPT (Hay muchos modelos GPT disponibles. Sin embargo, en nuestro caso, estamos utilizando "text-davinci-003" que, basándonos en las pruebas, nos parece el más fiable).
  • Prompt (Un prompt es, en otras palabras, un conjunto de instrucciones para GPT que aclara el propósito y el alcance de la solicitud. Debe ser lo más claro y directo posible, sin dejar lugar a interpretaciones. No dudes en repetir las órdenes varias veces para conseguirlo. Una indicación clara ayuda a evitar alucinaciones).
  • Máximo de tokens (Los tokens son las unidades básicas que los modelos GPT de OpenAI -incluido ChatGPT- utilizan para calcular la longitud de un texto. Son caracteres o grupos de caracteres que pueden corresponderse o no con palabras. Pero a efectos de simplificación puedes pensar en ellos como el número de caracteres. El "Ejemplo de solicitud" nos da 7 tokens, lo que nos daría sólo 3-4 palabras en el mejor de los casos. Puedes notar, que la plantilla está ajustada a 2000, aunque es poco probable que esta conversación use o tenga que usar esa cantidad, simplemente sirve como límite máximo antes de que la conversación se corte).
  • Temperature (El ajuste de temperatura del modelo GPT es, en palabras más sencillas, una indicación a la IA sobre cuánto se le permite improvisar y "ser creativa". La temperatura más baja posible es 0 y la más alta 1. Los incrementos se miden en decimales, por ejemplo, 0,1, 0,2, etc. Fijamos la temperatura de nuestro robot en 0, lo que significa que sólo puede trabajar con lo que hay. Quizá quieras aumentar la temperatura si trabajas con casos de uso más creativos).

El mensaje utilizado en nuestra plantilla es el siguiente: 

“Un cliente ( @name) se pone en contacto con nosotros porque algo ha ido mal. Debes actuar como un amable agente encargado de recoger una idea clara de lo que ha ido mal con el pedido, tienes que preguntárselo. Sabemos que hubo un problema, pero necesitamos saber cuál fue, así que tienes que averiguarlo. Obtén también su dirección de correo electrónico y su número de pedido (no muestres el resumen al usuario y no crees ninguna información). Haz sólo una pregunta cada vez y sé amable. Tu trabajo no es dar soporte, sólo recoger la información. No crees ninguna información, debe ser dada por el cliente. Aquí tienes tu historial de conversaciones con el cliente: @conversation_history, una vez que hayas recopilado las tres piezas de información del cliente y ya no necesite ayuda di: "Un agente se ocupará de esto", asegúrate de usar las palabras clave "Un agente se ocupará de esto" sólo cuando tengas un resumen claro del problema (al menos una frase del usuario), un número de pedido y una dirección de correo electrónico y el cliente ya no necesite ayuda. Cliente: @usuario_texto. Usted: \n"

Impide al bot crear información, haciendo hincapié en recopilar y resumir en su lugar y haciéndolo varias veces. También introduce la variable que almacena toda la conversación para que el bot pueda acceder a la memoria actualizada con cada vuelta de bucle. También le dice al bot que las respuestas creadas por el usuario se almacenan como @user_text. Y, puesto que es un modelo de finalización, está diseñado para completar el diálogo, de ahí el mensaje "You: \n", para que el bot sepa que debe completar las respuestas a las entradas del usuario. 

La siguiente sección en el editor Webhook es probar tu solicitud. Una vez más, ya está todo configurado. Sin embargo, haz clic en el botón Test Your Request.” para asegurarte de que todo funciona correctamente.

test tu chatbot de gpt

Si la conexión funciona correctamente, recibirás una respuesta 200. 

Las últimas secciones de las que hay que revisar son “Save Responses as Variables” y “Response Routing.”

La opción “Save Responses as Variables” nos permite guardar la respuesta del GPT bajo una variable y mostrarla al usuario. La plantilla está configurada de tal manera que sólo extrae y muestra el texto que desea que el usuario vea.

NOTA: Si quieres saber cómo configurar esta variable para que sólo guarde la parte de texto de la respuesta del GPT menos todos los bits de código, consulta el webinar de WhatsApp-GPT en el minuto 49:10.

La función “Response Routing” hace un poco de control de daños. Si la conexión Landbot-GPT funciona bien (200), el flujo continúa en el bucle GPT que hemos diseñado. Si hay un error (429) y los servidores GPT están sobrecargados, le permite redirigir al mensaje "Inténtelo de nuevo más tarde". 

Esto es todo para el bloque Webhook. Gracias a la plantilla, en realidad no tendrá que ocuparse de nada de la configuración. Aunque, si decides construir un chatbot con GPT por ti mismo, estos son los pasos por los que tendrás que pasar.

6. Configurar la fórmula para enviar la conversación al "Memory box"

Mientras que la respuesta de error 429 del Webhook redirige a los usuarios al mensaje de "inténtalo de nuevo más tarde", la respuesta 200 les lleva al bucle de conversación con el bot de IA. 

Como se ha mencionado, para que la conversación funcione realmente y conduzca a alguna parte, el bot necesita recordar los datos recogidos en cada "ronda". Para ello, tenemos que asegurarnos de almacenar la conversación dentro de la "caja vacía" que creamos al principio del flujo mediante el bloque Establecer una variable.

Para rellenarla, utilizaremos el bloque Fórmulas. En resumen, este bloque permite realizar acciones que normalmente requieren cierta codificación, como cálculos más complejos, condiciones o cambios de formato avanzados, etc. Pero en lugar de codificar, se utilizan funciones más parecidas a las fórmulas de GoogleSheets.

memoria de chatbot gpt

Si deseas aprender más sobre cómo funciona el bloque Fórmulas y qué puedes hacer con él, consulta nuestro videotutorial en Landbot Academy

Sin embargo, para los propósitos de esta guía, no hay nada más que hacer aquí. Sólo necesitas saber, que estamos usando la fórmula "Push" para empujar el @response (GPT) y, más tarde, @user_text' (entrada del usuario) dentro de nuestra caja vacía de memoria de conversación @conversation_history.

Así es como se ve la fórmula:

Push(Push(@conversation_history, '@response'), '@user_text')

7. Crear el ciclo de conversación

Una vez que tenemos una fórmula que asegura el relleno del cuadro de historial de conversación, podemos proceder a la conversación en sí.

ciclo de conversacion chatbot con gpt

El bloque “Fórmulas” nos lleva al bloque "Ask a question". En lugar de un texto fijo, el campo "question text" del bot se rellena con la variable @response que almacena y muestra la respuesta GPT, sea cual sea, en ese espacio concreto del bucle de conversación. Al usuario se le da el espacio para responder con sus propias palabras, y su respuesta se almacena en la variable @user_text. 

En teoría, se podría volver al bloque Webhook desde aquí. Sin embargo, eso crearía una conversación interminable. Por eso, antes de volver a conectar con el Webhook y cerrar el bucle, tenemos que darle al bot una salida si tiene toda la información que necesita.

8. Establecer condición para finalizar la conversación cuando se alcance el objetivo

Una forma muy sencilla de permitir que la conversación llegue a su fin y reunir todos los datos es utilizando el Conditional Logic block (bloque de Lógica Condicional).

Dado que, en nuestro prompt, instruimos al GPT para que dijera "Un agente se ocupará de esto" cuando tuviera toda la información necesaria, la plantilla utiliza esta respuesta como condición para permitir que el bot abandone el bucle:

como crear chatbot con gpt

De esta forma, si el bot de IA dice que el agente se pondrá en contacto con el usuario, el flujo lo tomará como una señal de que se ha recopilado toda la información necesaria y tomará la salida verde hacia el EXIT Flow (flujo de salida). Si la @respuesta no contiene la palabra "agente", tomará la salida rosa y llevará la conversación de vuelta al bloque Webhook para repetir el bucle.

9. Definir flujo de salida

Si estuvieras construyendo este flujo desde cero, lo más fácil de hacer aquí sería copiar el bloque Webhook que configuraste previamente, ir a “Customize Body” y simplemente actualizar el Prompt para entregar nuevas instrucciones (minuto 54:20 del webinar).

Sin embargo, ya que la plantilla con la que estamos trabajando fue creada para simplificar tu vida, realmente no necesitas lidiar con el bloque Webhook en absoluto, si no quieres. Usamos el mismo truco que antes, empleando el bloque "Set a Variable" para que no tengas que lidiar con los campos Webhook si no estás lo suficientemente seguro.

Por lo tanto, para modificar el mensaje final, sólo tiene que abrir el editor “Set a Variable” y aplicar los cambios en el campo “type the value”. 

Dentro del Webhook, el prompt se ve como sigue:

prompt de chatbot de gpt

Dado que incluye la variable @final_prompt en lugar de un texto fijo, cualquier cambio que realice antes en el prompt dentro del bloque  “Set a Variable” se reflejará automáticamente.

La respuesta final del GPT incluirá un resumen de la incidencia con toda la información del cliente que necesita para resolverla.

10. Enviar la información a su base de datos

Lo último que queda por hacer es enviar los datos recogidos a nuestra base de datos. La plantilla utiliza nuestra integración nativa Airtable:

integracion airtable en chatbot con gpt

Para saber cómo integrar Airtable, consulte el breve tutorial a continuación:

11. Evitando errores comunes

La construcción de bots es una aventura y los detalles pueden escapar a tu atención. Por lo tanto, si las cosas no están funcionando asegúrate de que

  • Los nombres de las variables están escritos correctamente 
  • Ninguna de las variables fue borrada accidentalmente
  • Estás utilizando la clave API correcta
  • Estás usando el modelo GPT correcto
  • Sus tokens no han caducado. 

Y ya está. 

Ya tienes en tus manos un chatbot de WhatsApp AI que funciona con GPT, ¡sin escribir una sola línea de código!

Para terminar

Esperamos que este artículo te haya resultado útil en tu viaje para convertirte en un experto en GPT y crear bots que mejoren la experiencia de tus clientes y te ayuden a hacer crecer tu negocio.

Si estás interesado en más recursos relacionados con el uso de GPT en conjunto con Landbot Builder, asegúrate de revisar nuestra Knowledge Base. Además, no pierdas de vista nuestro blog para obtener más consejos y tutoriales.

Barbora Jassova
Editorial Manager, Landbot
|
author linkedin lanbot

Artículos Relacionados