0% encontró este documento útil (0 votos)
298 vistas25 páginas

ChatBot Inteligente Con WhatsApp en Python

Este documento describe los pasos para crear un chatbot inteligente en WhatsApp utilizando Python. Explica cómo configurar la API de WhatsApp, crear una base de datos para almacenar mensajes y codificar la lógica del chatbot usando RiveScript.

Cargado por

NELSON WACHAPA
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
298 vistas25 páginas

ChatBot Inteligente Con WhatsApp en Python

Este documento describe los pasos para crear un chatbot inteligente en WhatsApp utilizando Python. Explica cómo configurar la API de WhatsApp, crear una base de datos para almacenar mensajes y codificar la lógica del chatbot usando RiveScript.

Cargado por

NELSON WACHAPA
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd

UNIDAD ACADÉMICA DE INFORMÁTICA, CIENCIAS DE LA COMPUTACIÓN E

INNOVACIÓN TECNOLÓGICA

CARRERA DE INGENIERÍA DEL SOFTWARE

ASIGNATURA
SISTEMAS DINAMICOS

TRABAJO
MANUAL DE DESARROLLO DE CHATBOT EN WHATSAPP CON LENGUAJE DE
PROGRAMACION PYTON

PROFESOR:
ING.PABLO BUESTAN

INTEGRANTES:
NELSON WACHAPA

JULIO – 2023
1. OBJETIVO
El objetivo de este trabajo es crear un chatbot inteligente con WhatsApp
(WhatsApp cloud API) con lenguaje de programación Python.

2. DEFINICIONES
Es una plataforma de mensajería de un restaurante que nos ayuda a
conocer los precios, horarios de labor, ubicación, y sobre todo nos detalla
toda la información que nos puede brindar mediante una pregunta de
mensajes en WhatsApp.

3. DESARROLLO DEL MANUAL


Dentro del desarrollo de chatbot elaboraremos 3 fases que son.
Paso 1:
3.1 Creamos una aplicación en Facebook
Ingresamos en la pagina web https://developers.facebook.com/, y
realizamos lo siguiente.

 Creamos nuestra aplicación, como es la primera vez que estoy


desarrollando, lo primero es registrarse como desarrollador
 Entonces en este paso estamos creando nuestra app
 En este paso ponemos el nombre como se va llamar nuestra app
en Facebook
3.2 Configuramos el API de WhatsApp
Este procesos empezamos a configurar API de WhatsApp

Luego damos clic en empezar a utilizar PI


Luego administramos número de teléfono para recibir un mensaje en
WhatsApp

Hay tenemos el código de confirmación


Una vez que ya tenemos vinculado nuestro número de teléfono ya
podemos enviar mensaje, entonces damos clic en el botón enviar

Listo ya recibimos un mensaje

Luego de haber realizado este paso ya tenemos los mensajes de llegado


falta el mensaje de regresos por lo tanto nos vamos en configuración
con la opción de crear URL de llamada esto quiere decir esto es crear un
dominio con un programa para recibir los mensajes de llamada de
WhatsApp.
3.3 Creamos nuestro host.
En este proceso nos vamos registrar en alwaysdata

En este paso nos vamos en la opción sites por defecto ya está creado un
sitio ya creado en php un sitio y lo borramos y creamos nuestro propio
sitio web.
Creamos nuestro propio sitio dando clic en install an aplication en
Python y utilizamos flask que es un frameword para programar vía web

Creamos un dominio y aceptamos


Aquí ya tenemos creado el dominio

Listo hay tenemos nuestra plantilla

Luego editamos la plantilla, aquí tenemos nuestro usuario y nuestro fttp


de host
Luego nos vamos en nuestro gestor de ftp en este caso yo utiliza flezilla
y creamos
Conectamos

Lego pulsamos en _init_py para ir en nuestro editor de código Python


3.4 Código de chatbot inteligente con WhatsApp en Python

Luego vamos en configuración de Facebook developer


Luego vamos al administrador y habilitamos mensajería

Listo bueno en este caso ya tendremos el mensaje con número de


teléfono y el id del mensaje.
Paso 2
Para proceder el segundo, primeramente ya tenemos funcionando
nuestra mensajería ya envía los mensajes por lo tanto seguiremos con
la siguiente fase que es como vamos guardar los mensajes de WhatsApp
que enviamos y recibimos con Python.

3.5 Creamos la base de datos

Y aquí creamos nuestra base de datos


Luego ingresamos a PHPAdmin

Hay tenemos el código de registro de la tabla en phpadmin


Validamos el código y ya tenemos nuestro tabla que se llama registro

Luego instalamos las dependencias de Python


Primero nos logeamos por medio de página web
3.6 Instalamos la dependencia en este caso yo ya tengo instalado

3.7 Luego vamos colocar los datos de conexión en visual code

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:
from rivescript import RiveScript
#INICIALIZAMOS RIVESCRIPT Y CARGAMOS LA CONVERSACION
bot = RiveScript()
bot.load_file('restaurante.rive')
bot.sort_replies()
#OBTENEMOS LA RESPUESTA
respuesta= bot.reply("localuser",mensaje)
respuesta=respuesta.replace("\\n","\\\n")
respuesta=respuesta.replace("\\","")
#CONECTAMOS A LA BASE DE DATOS
import mysql.connector
mydb = mysql.connector.connect(
host = "mysql-chat-bot.alwaysdata.net",
user = "chat-bot",
password = "wachapa1991",
database = 'chat-bot_wa'

)
#para q no me este llegando mensaje repetidos
mycursor = mydb.cursor()
query="SELECT count(id) AS cantidad FROM registro
WHERE id_wa='" + idWA + "';"
mycursor.execute("SELECT count(id) AS cantidad FROM
registro WHERE id_wa='" + idWA + "';")

cantidad, = mycursor.fetchone()
cantidad=str(cantidad)
cantidad=int(cantidad)
if cantidad==0 :
sql = ("INSERT INTO registro"+
"(mensaje_recibido,mensaje_enviado,id_wa
,timestamp_wa ,telefono_wa) VALUES "+
"('"+mensaje+"' ,'
"+respuesta+"','"+idWA+"' ,'"+timestamp+"','"+telefonoClient
e+"');")
mycursor.execute(sql)
mydb.commit()

enviar(telefonoCliente,respuesta)
#RETORNAMOS EL STATUS EN UN JSON
return jsonify({"status": "success"}, 200)
def enviar(telefonoRecibe,respuesta):
from heyoo import WhatsApp
#TOKEN DE ACCESO DE FACEBOOK

token='EAADgVgdPVIsBO818eslISu3cCMMO2AlhxtCwvnYcLd70QmOuhvaU
ROb1Nu7FTldlTVqgKahuzWmMH66dRviVEotkObNpL6MSxwpmBfc9SUkaTNHz
sny6IHrZAT9pTfwg2dpPCpzXIRamnZBBi7QzFRJzSbeqZBj3joBqmKZCuGt1
6bcXbb0lVyMGPX2gZB4qTsDG0DKblOU3ZCSDU3FKvw'
#IDENTIFICADOR DE NÚMERO DE TELÉFONO
idNumeroTeléfono='102986362886514'
#INICIALIZAMOS ENVIO DE MENSAJES
mensajeWa=WhatsApp(token,idNumeroTeléfono)
telefonoRecibe=telefonoRecibe.replace("521","52")
#ENVIAMOS UN MENSAJE DE TEXTO
mensajeWa.send_message(respuesta,telefonoRecibe)
#INICIAMSO FLASK
if __name__ == "__main__":
app.run(debug=True)

También tenemos el código del restaurante con toda la información que nos
puede brindar, lo primero creamos nuevo archivo con el nombre restaurante.rive

Y tenemos el código
Listo, ya tenemos el código y enviamos un mensaje en WhatsApp, y nos guarda en
la base de datos phpadmin
Paso 3.
En este paso ya tenemos todo los mensajes guardando en la base de datos ahora
lo que vamos a realizar es recibir la respuesta según la pregunta.

3.8 Instalamos la dependencia


Para empezar primero vamos en Facebook en la opción configuración
de la API, y colocamos el número de dependencia
Luego agregamos el código
enviar(telefonoCliente,respuesta)
#RETORNAMOS EL STATUS EN UN JSON
return jsonify({"status": "success"}, 200)
def enviar(telefonoRecibe,respuesta):
from heyoo import WhatsApp
#TOKEN DE ACCESO DE FACEBOOK

token='EAADgVgdPVIsBOw4v1ZAcCV9i3Vt3dNL9anS5dvXV9x7etZBB3p9Z
AQB3KDUVxIgLo2s4E9CVa6RyZAXwBRj4KqLSwUtFpLiNv6ZCsCZBMLnqtGZC
04tOlpCu8yj1dTXQykqSsrZCVRgaMVZB0SLd1X6VmlfWk09ugBzF4ysBzeIJ
abf6OGMKhEZCPqI7uRV1IwC7ZAOZC9RqsgtkoPRKRGwWs6AZD'
#IDENTIFICADOR DE NÚMERO DE TELÉFONO
idNumeroTeléfono='102986362886514'
#INICIALIZAMOS ENVIO DE MENSAJES
mensajeWa=WhatsApp(token,idNumeroTeléfono)
telefonoRecibe=telefonoRecibe.replace("521","52")
#ENVIAMOS UN MENSAJE DE TEXTO
mensajeWa.send_message(respuesta,telefonoRecibe)

Instalamos la dependencia
3.9 Luego mostramos el código y pruebas

Enviamos mensaje en WhatsApp

También podría gustarte