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)
Activamos un servidor ngrok






