02. WHATSAPP CHATGPT

Recibir WhatsApp y crear una respuesta con ChatGPT

Ya nos conectamos a ChatGPT y hemos obtenido respuestas a nuestras preguntas, ahora vamos a recibir WhatsApp y crear una respuesta con ChatGPT. Recordemos que WhatsApp fue comprado por Meta y debemos conectarnos a Meta para poder recibir mensajes desde WhatsApp.

Creamos una app en Facebook

Vamos la url de Meta developers Meta for Developers (facebook.com) y creamos una cuenta de developer y accedemos a my apps

O podemos aceder a este link Todas las apps – Meta for Developers (facebook.com)

Damos click en Crear app

Seleccionamos cualquier opcion y damos click en siguiente

Colocamos un nombre a nuestra app, nuestro correo y click en Crear app

Bajamos hasta encontrar WhatsApp y damos click en configurar

damos click en continuar

Configuramos el Api de WhatsApp

Hacemos click en Primeros pasos o en Empezar a usar la API

Hacemos click en Seleccionar un numero de telfono destinatario, seleccionamos el pais y colocamos un numero que recibira las pruebas

Recibiremos un numero de 5 dígitos que ingresaremos aqui y damos click en siguiente

En Basica, colocamos la url de las políticas de privacidad de nuestra página web, bajamos y damos click en guardar y activamos el modo desarrollo

Si damos click en enviar mensaje nos llegara un Mensaje a nuestro numero de WhatsApp

Este es el mensaje que recibimos

Código de Recibir WhatsApp y crear una respuesta con ChatGPT

Librerías

pip install Flask
pip install jsonify
pip install requests

Código

#Código de Recibir WhatsApp y crear una respuesta con ChatGPT
from flask import Flask, jsonify, request
app = Flask(__name__)
#CUANDO RECIBAMOS LAS PETICIONES EN ESTA RUTA
@app.route("/webhook/", methods=["POST", "GET"])
def webhook_whatsapp():
    #SI HAY DATOS RECIBIDOS VIA GET
    if request.method == "GET":
        #SI EL TOKEN ES IGUAL AL QUE RECIBIMOS
        if request.args.get('hub.verify_token') == "HolaNovato":
            #ESCRIBIMOS EN EL NAVEGADOR EL VALOR DEL RETO RECIBIDO DESDE FACEBOOK
            return request.args.get('hub.challenge')
        else:
            #SI NO SON IGUALES RETORNAMOS UN MENSAJE DE ERROR
          return "Error de autentificacion."
    #RECIBIMOS TODOS LOS DATOS ENVIADO VIA JSON
    data=request.get_json()
    #EXTRAEMOS EL NUMERO DE TELEFONO Y EL MANSAJE
    telefonoCliente=data['entry'][0]['changes'][0]['value']['messages'][0]['from']
    #EXTRAEMOS EL TELEFONO DEL CLIENTE
    mensaje=data['entry'][0]['changes'][0]['value']['messages'][0]['text']['body']
    #EXTRAEMOS EL ID DE WHATSAPP DEL ARRAY
    idWA=data['entry'][0]['changes'][0]['value']['messages'][0]['id']
    #EXTRAEMOS EL TIEMPO DE WHATSAPP DEL ARRAY
    timestamp=data['entry'][0]['changes'][0]['value']['messages'][0]['timestamp']
    #ESCRIBIMOS EL NUMERO DE TELEFONO Y EL MENSAJE EN EL ARCHIVO TEXTO
    #SI HAY UN MENSAJE
    if mensaje is not None:
      
        import openai
        # Indica el API Key
        openai.api_key = "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"
        # Uso de ChapGPT en Python
        model_engine = "text-davinci-003"
        prompt = mensaje
        completion = openai.Completion.create(engine=model_engine,
                                            prompt=prompt,
                                            max_tokens=1024,
                                            n=1,
                                            stop=None,
                                            temperature=0.7)
        respuesta=""
        for choice in completion.choices:
            respuesta=respuesta+choice.text
            print(f"Response: %s" % choice.text)

        respuesta=respuesta.replace("\\n","\\\n")
        respuesta=respuesta.replace("\\","")
        f = open("texto.txt", "w")
        f.write(respuesta)
        f.close()
        #RETORNAMOS EL STATUS EN UN JSON
        return jsonify({"status": "success"}, 200)
#INICIAMSO FLASK
if __name__ == "__main__":
  app.run(debug=True)

Activamos un servidor ngrok

Nos registramos en ngrok.com

Descargamos ngrok.exe, le damos doble click y pegamos este comando “ngrok http 8080”

En fb vamos a Configuracion y pegamos la url de ngrok unido a la carpeta y token de nuestro codigo java y verificar

Vamos a la configuracion, damos click en editar y colocamos la url de nuestro servidor, el token y damos click en Verificar

Damos click en Administrar, suscribir en messages y click en listo

Enviamos un texto desde Whatsapp y lo podemos leer en el archivo texto que esta en la raiz del proyecto

🔗 Codigo: Recibir WhatsApp y crear una respuesta con ChatGPT · programadornovato/ChatgptWhatsApp@78cd3d4 (github.com)

Los comentarios están cerrados.

Salir de la versión móvil