Antes de empezar veamos lo es un Chatbot(contracción de chat + robot). Los Chatbot son software creados con la finalidad de simular conversaciones con personas reales usando alguna plataforma de intercambio de mensajes. Los bots pueden responder una amplia variedad de preguntas evitando la necesidad de tener que leer y responder dichas preguntas manualmente, automatizando este proceso.
Los chatbot usan inteligencia artificial. Lo que les permite aprender los gustos y preferencias de los clientes y mejorar su funcionamiento con el paso del tiempo. Hoy en día se ha extendido gracias a su incorporación en plataformas como Facebook Messenger, Telegram o Slack, solo por mencionar algunas. Pero también pueden ser utilizados para otros fines como atención al cliente o donde sea necesario automatizar respuestas.
Y que es Chatterbot?. Se podría decir que Chatterbot es una motor conversacional(motor para generar chatbots) programado en Python que usa capacidades básicas de machine learning el cual después de realizar un entrenamiento es capaz de realizar simulaciones de conversaciones.
Muy bien sabiendo esto entonces comenzaremos a desarrollar nuestro propio chatbot. Pero antes de empezar debemos descargar el modulo chatterbot aquí o utilizando el comando “pip install chatterbot”. También podemos consultar la documentación aquí
Para comenzar lo primero es entrenar el bot.
from chatterbot import ChatBot # Importa la clase ChatBot
# Definimos chatbot pasando como argumento el nombre que le daremos al Bot
# También indicaremos los parámetros de entrenamiento del bot
chatbot = ChatBot(
'EjemploBot',
trainer='chatterbot.trainers.ChatterBotCorpusTrainer'
)
# Entrenamos al bot en el idioma que necesitemos
# Los idiomas disponibles se encuentran en la documentación
# Solo es necesario ejecutar el entrenamiento una vez
chatbot.train("chatterbot.corpus.spanish")
# Ejemplo de conversación
while True:
usuario = input(“>>> ”)
respuesta = chatbot.get_response(usuario)
print (“bot: ”+str(respuesta))
En este sencillo ejemplo vemos como realizar un chatbot que contestara preguntas dando respuestas que ya se encuentran predefinidas en chatterbot-corpus puedes consultar los idiomas aqui
Muy bien pero ¿qué pasa si queremos crear consultas personalizadas para nuestro bot? Para esta tarea chatterbot cuenta con un adaptador mediante el cual daremos respuestas especificas al bot, como veremos en el siguiente ejemplo.
from chatterbot import ChatBot
# Creamos una instancia de nuestro bot
bot = ChatBot(
'EjemploBot',
storage_adapter='chatterbot.storage.SQLStorageAdapter', # Adaptador de almacenamiento
logic_adapters=[
{
'import_path': 'chatterbot.logic.BestMatch' # Adaptador para las respuestas
},
{
'import_path': 'chatterbot.logic.SpecificResponseAdapter', # Adaptador para respuestas especificas
'input_text': 'Quien eres?', # Entrada por parte del usuario
'output_text': Yo soy un bot, estoy para servirle' # Respuesta del bot
}
],
trainer='chatterbot.trainers.ListTrainer' # Entrenamos al bot
)
response = bot.get_response('Quien eres?') # Preguntamos al bot
print(response) # Mostramos la respuesta
Y si todo ha marchado bien obtendremos como salida el mensaje indicado.
De esta forma podemos que crear cualquier cantidad de consultas para que nuestro bot sea capaz de responder a diferentes preguntas. Ahora queda de vuestra parte que tantas creen necesitar para el proyecto en que lo deseen usar. También te invito a consultar la documentación para toda la información como más adaptadores para que nuestro bot tenga funciones específicas como dar la hora o realizar operaciones aritméticas entre otros disponibles.
Funte de la imagen aquí