Construir bots de whatsapp ai con pitón puro
Esta guía lo guiará a través del proceso de crear un bot de WhatsApp usando la API de la nube Meta (anteriormente Facebook) con Python Pure y Flask en particular. También integraremos los eventos de Webhook para recibir mensajes en tiempo real y usaremos OpenAI para generar respuestas de IA. Para obtener más información sobre la estructura de la aplicación Flask, puede consultar esta documentación.
Requisitos previos
- Una cuenta de Meta Developer: si no tiene una, puede crear una cuenta de Meta Developer aquí.
- Una aplicación comercial: si no tiene una, puede aprender a crear una aplicación comercial aquí. Si no ve una opción para crear una aplicación comercial, seleccione Otro > Next > Negocios .
- Familiaridad con Python para seguir el tutorial.
Tabla de contenido
- Construir bots de whatsapp ai con pitón puro
- Requisitos previos
- Tabla de contenido
- Empezar
- Paso 1: seleccione Números de teléfono
- Paso 2: Enviar mensajes con la API
- Paso 3: Configurar webhooks para recibir mensajes
- Comience su aplicación
- Iniciar NGROK
- Integrar whatsapp
- Probar la integración
- Paso 4: Comprender la seguridad del webhook
- Solicitudes de verificación
- Validación de solicitudes de verificación
- Validación de cargas útiles
- Paso 5: Aprenda sobre la API y cree su aplicación
- Paso 6: Integre la IA en la aplicación
- Paso 7: Agregue un número de teléfono
- Data de datos
- Tutoriales
Empezar
- Descripción general y configuración : comience su viaje aquí.
- Localice sus bots : sus bots se pueden encontrar aquí.
- Documentación de la API de WhatsApp : Familiarícese con la documentación oficial.
- Guía útil : aquí hay una guía basada en Python para enviar mensajes.
- API Docs para enviar mensajes : consulte esta documentación.
Paso 1: seleccione Números de teléfono
- Asegúrese de que WhatsApp se agregue a su aplicación.
- Comienza con un número de prueba que puede usar para enviar mensajes a hasta 5 números.
- Vaya a la configuración de la API y localice el número de prueba del que enviará mensajes.
- Aquí, también puede agregar números para enviar mensajes. Ingrese su propio número de WhatsApp .
- Recibirá un código en su teléfono a través de WhatsApp para verificar su número.
Paso 2: Enviar mensajes con la API
- Obtenga un token de acceso de 24 horas de la sección de acceso a la API.
- Mostrará un ejemplo de cómo enviar mensajes usando un comando
curl que se puede enviar desde el terminal o con una herramienta como Postman. - Convirtamos eso en una función de Python con la biblioteca de solicitudes.
- Cree un archivo
.env basado en example.env y actualice las variables requeridas. Ejemplo de video aquí. - Recibirá un mensaje "Hello World" (espere un retraso de 60-120 segundos para el mensaje).
Crear un acceso que funcione más de 24 horas
- Cree un usuario del sistema en el nivel de cuenta de Meta Business.
- En la página de usuarios del sistema, configure los activos para el usuario de su sistema, asignando su aplicación WhatsApp con control total. No olvide hacer clic en el botón Guardar cambios.
- Ver el paso 1 aquí
- Ver el paso 2 aquí
- Ahora haga clic en
Generate new token y seleccione la aplicación, y luego elija cuánto tiempo será válido el token de acceso. Puede elegir 60 días o nunca caducar. - Seleccione todos los permisos, ya que me encontraba con errores cuando solo seleccioné los WhatsApp.
- Confirme y copie el token de acceso.
Ahora tenemos que encontrar la siguiente información en el tablero de aplicaciones :
- APP_ID : "<Your-whatsApp-Business-app_id>" (encontrado en el tablero de aplicaciones)
- APP_SECRET : "<Ar-whatsApp-Business-app_secret>" (encontrado en el tablero de aplicaciones)
- Destinatario_waid : "" (Esta es su ID de WhatsApp, es decir, número de teléfono. Asegúrese de que se agregue a la cuenta como se muestra en el mensaje de prueba de ejemplo).
- Versión : "V18.0" (la última versión de la API de Meta Graph)
- Access_token : "" (creado en el paso anterior)
Solo puede enviar un mensaje de tipo de plantilla como su primer mensaje a un usuario. Es por eso que tienes que enviar una respuesta primero antes de continuar. Me llevó 2 horas resolver esto.
Paso 3: Configurar webhooks para recibir mensajes
Tenga en cuenta que esta es la parte más difícil de este tutorial.
Comience su aplicación
- Hacer que tenga una instalación o entorno de Python e instale los requisitos:
pip install -r requirements.txt - Ejecute su aplicación Flask localmente ejecutando run.py
Iniciar NGROK
Los siguientes pasos se toman de la documentación de NGROK.
¡Necesita un dominio NGROK estático porque Meta valida su dominio y certificado NGROK!
Una vez que su aplicación se ejecute con éxito en Localhost, ¡obtengamos en Internet de forma segura utilizando NGROK!
- Si aún no eres un usuario de NGROK, solo regístrese en Ngrok de forma gratuita.
- Descargue el agente ngrok.
- Vaya al panel de Ngrok, haga clic en su AuthToken y copie su AuthToken.
- Siga las instrucciones para autenticar su agente NGROK. Solo tienes que hacer esto una vez.
- En el menú izquierdo, expanda el borde de la nube y luego haga clic en los dominios.
- En la página Domains, haga clic en + Crear dominio o + nuevo dominio. (Aquí todos pueden comenzar con un dominio gratuito)
- Inicie NGROK ejecutando el siguiente comando en un terminal en su escritorio local:
ngrok http 8000 --domain your-domain.ngrok-free.app
- NGROK mostrará una URL en la que su aplicación localhost está expuesta a Internet (copie esta URL para su uso con Meta).
Integrar whatsapp
En el tablero de meta aplicaciones, vaya a la configuración de WhatsApp>, luego haga clic en el botón Editar.
- En la ventana emergente de URL de devolución de llamada de Editar Webhook, ingrese la URL proporcionada por el agente NGROK para exponer su aplicación a Internet en el campo URL de devolución de llamada, con/webhook al final (es decir, https://myexample.ngrok-free.app/webhook ).
- Ingrese un token de verificación. Esta cadena está configurada por usted cuando crea su punto final webhook. Puedes elegir cualquier cadena que quieras. Asegúrese de actualizar esto en su variable de entorno
VERIFY_TOKEN . - Después de agregar un webhook a WhatsApp, WhatsApp enviará una solicitud de publicación de validación a su solicitud a través de NGROK. Confirme
WEBHOOK_VERIFIED su aplicación LocalHost reciba la solicitud de validación. - Volver a la página de configuración, haga clic en Administrar.
- En la ventana emergente de Webhook Fields, haga clic en suscribirse al campo Mensajes . Consejo: puede suscribirse a múltiples campos.
- Si su aplicación Flask y Ngrok se están ejecutando, puede hacer clic en "Prueba" junto a los mensajes para probar la suscripción. Recibe un mensaje de prueba en la caja superior. Si ese es el caso, su webhook está configurado correctamente.
Probar la integración
Use el número de teléfono asociado a su producto de WhatsApp o use el número de prueba que copió antes.
- Agregue este número a sus contactos de la aplicación WhatsApp y luego envíe un mensaje a este número.
- Confirme que su aplicación LocalHost reciba un mensaje y registre los encabezados y el cuerpo en la terminal.
- Pruebe si el bot le responde en la caja superior.
- ¡Ahora has integrado con éxito el bot! ?
- Ahora es el momento de construir acutalmente cosas geniales con esto.
Paso 4: Comprender la seguridad del webhook
A continuación se muestra información de los documentos de la API de Meta Webhooks sobre la verificación y la seguridad. Ya está implementado en el código, pero puede hacer referencia para comprender mejor lo que está sucediendo en Security.py
Solicitudes de verificación
Fuente
Cada vez que configure el producto Webhooks en el tablero de su aplicación, enviaremos una solicitud GET a su URL de punto final. Las solicitudes de verificación incluyen los siguientes parámetros de cadena de consulta, adjunto al final de su URL de punto final. Se verán algo así:
GET https://www.your-clever-domain-name.com/webhook?
hub.mode=subscribe&
hub.challenge=1158201444&
hub.verify_token=meatyhamhock
El Verify_Token, meatyhamhock en el caso de este ejemplo, es una cadena que puede elegir. No importa lo que sea, siempre y cuando almacene en la variable de entorno VERIFY_TOKEN .
Validación de solicitudes de verificación
Fuente
Siempre que su punto final reciba una solicitud de verificación, debe:
- Verifique que el valor Hub.verify_Token coincida con la cadena que establece en el campo Verify Token cuando configura el producto Webhooks en el tablero de su aplicación (aún no ha configurado esta cadena de token).
- Responda con el Hub. Valor de atención.
Validación de cargas útiles
Fuente
WhatsApp firma todas las cargas útiles de notificación de eventos con una firma SHA256 e incluyen la firma en el encabezado X-Hub-Signature-256 de la solicitud, precedido con SHA256 =. No tiene que validar la carga útil, pero deberías hacerlo.
Para validar la carga útil:
- Genere una firma SHA256 usando la carga útil y el secreto de la aplicación de su aplicación.
- Compare su firma con la firma en el encabezado X-Hub-Signature-256 (todo después de SHA256 =). Si las firmas coinciden, la carga útil es genuina.
Paso 5: Aprenda sobre la API y cree su aplicación
Revise la documentación del desarrollador para aprender cómo crear su aplicación y comenzar a enviar mensajes. Ver documentación.
Paso 6: Integre la IA en la aplicación
Ahora que tenemos una conexión de extremo a extremo, podemos hacer que el bot sea un poco más inteligente que simplemente gritándonos en el primer caso. Todo lo que tiene que hacer es crear su propia función generate_response() en whatsapp_utils.py.
Si desea un ejemplo de cortador de cookies para integrar la API de OpenAI ASSISTAN con una herramienta de recuperación, siga estos pasos.
- Mira este video: Tutorial de asistentes de Openai
- Cree su propio asistente con OpenAI y actualice su
OPENAI_API_KEY y OPENAI_ASSISTANT_ID en las variables de entorno. - Proporcione a su asistente datos e instrucciones
- Actualice OpenAI_Service.py en su caso de uso.
- Importar
generate_reponse en whatsapp_utils.py - Actualizar
process_whatsapp_message() con la función nueva generate_reponse() .
Paso 7: Agregue un número de teléfono
Cuando esté listo para usar su aplicación para un caso de uso de producción, debe usar su propio número de teléfono para enviar mensajes a sus usuarios.
Para comenzar a enviar mensajes a cualquier número de WhatsApp, agregue un número de teléfono. Para administrar la información y el número de teléfono de su cuenta, consulte la página Descripción general. y los documentos de WhatsApp.
Si desea utilizar un número que ya se está utilizando en la aplicación de clientes o negocios de WhatsApp, deberá migrar completamente ese número a la plataforma comercial. Una vez que se migre el número, perderá acceso al cliente o la aplicación comercial de WhatsApp. Consulte migrar el número de WhatsApp existente a una cuenta comercial para obtener información.
Una vez que haya elegido su número de teléfono, debe agregarlo a su cuenta comercial de WhatsApp. Vea agregar un número de teléfono.
Al tratar con WhatsApp Business API y querer experimentar sin afectar su número personal, tiene algunas opciones:
- Comprar una nueva tarjeta SIM
- Números de teléfono virtuales
- Teléfonos SIM duales
- Use un dispositivo diferente
- Servicios de números temporales
- Dispositivos dedicados para el desarrollo
Recomendación : si esto es para un propósito más prolongado o profesional, se recomienda usar un servicio de número de teléfono virtual o comprar una nueva tarjeta SIM para un dispositivo dedicado. Para pruebas rápidas, un número temporal podría ser suficiente, pero siempre sea cauteloso con la seguridad y la privacidad. Recuerde que una vez que un número está asociado con WhatsApp Business API, no se puede utilizar con WhatsApp regular en un dispositivo a menos que lo desactive desde la API empresarial y lo reverifique en el dispositivo.
Data de datos
Este documento le es proporcionado por DataLumina. Ayudamos a los analistas de datos, los ingenieros y los científicos a lanzar y escalar un negocio independiente exitoso: $ 100k+ /año, proyectos divertidos, clientes felices. Si desea obtener más información sobre lo que hacemos, puede visitar nuestro sitio web y suscribirse a nuestro boletín. No dude en compartir este documento con sus amigos y colegas de datos.
Tutoriales
Para ver los videos tutoriales, visite el canal de YouTube: youtube.com/@daveebbelaar.