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
O podemos aceder a este link Todas las apps – Meta for Developers (facebook.com)
Configuramos el Api de WhatsApp
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)
Ave que vuela, a la cazuela.