Rasa es un módulo de Python que se utiliza para crear chatbots de IA personalizados. Puede enviar fácilmente correos electrónicos automatizados a sus usuarios utilizando el chatbot rasa.
,
Diagrama de flujo:
Creando un chatbot Rasa
Primero, necesitará un chatbot rasa a través del cual pueda enviar correos electrónicos automatizados.
Para instalar el módulo rasa, escriba el siguiente comando en la terminal (requiere Python 3.6, 3.7 o 3.8).
pip3 install -U pip pip3 install rasa
Para crear un nuevo proyecto con datos de entrenamiento de ejemplo, escriba el siguiente comando en la terminal.
rasa init
Ahora su rasa chatbot está listo. Puede hablar con su chatbot usando el siguiente comando.
rasa shell
Ahora, en el siguiente paso, agregaremos más datos de entrenamiento a este chatbot.
Adición de intenciones, respuestas e historias
Ahora nuestro chatbot puede responder a las entradas básicas de los usuarios, pero tenemos que agregar más intentos, respuestas e historias para tomar la ID de correo electrónico y el nombre del usuario. Para obtener una explicación detallada de las intenciones, las respuestas y las historias, consulte este artículo .
Adición de intenciones:
Aquí necesitamos dos nuevas intenciones para el nombre y la identificación del correo electrónico. Agregue las siguientes líneas en su archivo nlu.yml.
- intent: email_id examples: | - [abc@gmail.com](email) - [abc@yourdomain](email) - @gmail.com - [xyz@gmail.com](email) - intent: user_name examples: | - [YOURNAME](name) - [RANDOM_PERSON_NAME](name)
Aquí también estamos creando dos ranuras (correo electrónico y nombre) en las que almacenaremos los datos del usuario para que en su archivo domain.yml agregue las nuevas ranuras e intenciones.
Adición de respuestas:
Ahora tenemos que agregar dos nuevas respuestas a nuestro chatbot.
- Para pedirle al usuario que ingrese el nombre.
- Para pedirle al usuario que ingrese una identificación de correo electrónico.
Para esto, agregue las siguientes líneas en la sección de respuestas en el archivo domain.yml.
utter_askname: - text: Please enter your name. utter_askemail: - text: Please enter email id to receive updates.
Agregar historias:
Ahora tenemos que agregar algunas historias relevantes en nuestro archivo stories.yml, así que elimine todas las historias en ese archivo y agregue las líneas a continuación (puede agregar más historias según sus necesidades).
- story: GeekforGeek story steps: - intent: greet - action: utter_askname - intent: user_name - slot_was_set: - name: "YOURNAME" - action: utter_askemail - slot_was_set: - email: 'abc@gmail.com' - intent: email_id - action: action_email
Aquí ‘action_email’ no existe, por lo que debemos crear esta acción para enviar correos electrónicos, pero antes de eso, vaya al archivo endpoints.yml y elimine los comentarios de las líneas a continuación.
action_endpoint: url: "http://localhost:5055/webhook"
Adición de una acción de correo electrónico personalizada
Ahora agregaremos una nueva clase en nuestro archivo actions.py para enviar correos electrónicos automatizados. Agregue los siguientes códigos en el archivo actions.py.
Python3
# Importing required modules from typing import Any, Text, Dict, List from rasa_sdk import Action, Tracker from rasa_sdk.executor import CollectingDispatcher import smtplib # Creating new class to send emails. class ActionEmail(Action): def name(self) -> Text: # Name of the action return "action_email" def run(self, dispatcher: CollectingDispatcher, tracker: Tracker, domain: Dict[Text, Any]) -> List[Dict[Text, Any]]: # Getting the data stored in the # slots and storing them in variables. user_name = tracker.get_slot("name") email_id = tracker.get_slot("email") # Code to send email # Creating connection using smtplib module s = smtplib.SMTP('smtp.gmail.com',587) # Making connection secured s.starttls() # Authentication s.login("SENDER_EMAILID", "PASSWORD") # Message to be sent message = "Hello {} , This is a demo message".format(user_name) # Sending the mail s.sendmail("SENDER_EMAIL_ID",email_id, message) # Closing the connection s.quit() # Confirmation message dispatcher.utter_message(text="Email has been sent.") return []
Explicación: Primero importe el módulo rasa y smtplib. Luego, cree una clase de Python que devolverá una acción llamada ‘action_email’ y obtendrá el nombre de usuario y la identificación del correo electrónico de la ranura y los almacenará en variables separadas. Creando una conexión usando el método SMTP del módulo smtplib. Y luego haga que la conexión sea segura usando el método starttls() del módulo smtplib. Y luego inicie sesión en la cuenta de Gmail usando la función de inicio de sesión() que tomará la identificación y la contraseña del correo electrónico como parámetros. Almacenar el mensaje en una nueva variable llamada ‘mensaje’. Y luego envíe el correo electrónico utilizando la función Sendmail que tomará la identificación del correo electrónico del remitente, la identificación del correo electrónico del destinatario y el mensaje como su parámetro. Luego cierre la conexión usando la función quit().
También debe permitir el acceso a aplicaciones menos seguras en su cuenta de Gmail.
Inicie sesión en su cuenta de Gmail y vaya a «Administrar su cuenta de Google».
Luego haga clic en la pestaña «Seguridad».
Luego active el «Acceso a aplicaciones menos seguras»:
Después de esto, agregue las siguientes líneas en el archivo domain.yml:
actions: - action_email
Ahora que todo está listo solo nos queda entrenar a nuestro chatbot. Para este tipo, el siguiente comando está en la terminal:
rasa train
Una vez completada la capacitación, puede hablar con su chatbot escribiendo los siguientes comandos en la terminal. Para ejecutar el servidor de acciones:
rasa run actions
Para ejecutar el modelo entrenado:
rasa shell
Producción:
Salida de vídeo:
Publicación traducida automáticamente
Artículo escrito por imranalam21510 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA