2. Crear un chatbot en C Agregar IA con rivescript 1

Agregar Inteligencia Artificial a ChatBot WhatsApp en C#

Ya aprendimos a Crear un ChatBot inteligente con WhatsApp en C# ahora vamos a Agregar Inteligencia Artificial a ChatBot WhatsApp en C# siguiendo estos pasos:

Instalamos las dependencias

image 21
Agregamos la libreria rivescript en Proyecto->Nuget->Examinar-> Escribimos rivescript-> Instalalar y click en OK

Codigo para Agregar Inteligencia Artificial a ChatBot WhatsApp

image 26
En la raiz del proyecto creamos un archivo llamado restaurante.rive al que colocaremos el siguiente codigo

restaurante.rive

+ hola
- Hola, Soy un robot, esta es la informacion que te puedo ofrecer\nNuestros telefonos\nNuestra direccion\nEntregas\nPagina web\nHorarios\nMenu\n
! var lunes = Menu del Lunes \nChiles en nogada 20.50 \nChilaquiles 15.50 \n
! var martes = Menu del Martes \nPambasos 20.50 \nHuitlacoche 15.50 \n
! var miercoles = Menu del Miercoles \nEnchiladas 120.50 \nCaldo de olla 15.50 \n
! var jueves = Menu del Jueves \nTacos 120.50 \nQuesadillas 15.50 \n
! var viernes = Menu del Viernes \nTortas 20.50 \nTacos 15.50 \n
! var sabado = Menu del Sabado \nEnchiladas 120.50 \nHuitlacoche 15.50 \n
! var domingo = Los domingo esta cerrado
! var horario = Lunes abrimos de 08:00 a 18:00\nMartes abrimos de 08:00 a 18:00\nMiercoles abrimos de 08:00 a 18:00\nJueves abrimos de 08:00 a 18:00\nViernes abrimos de 08:00 a 18:00\nSabados abrimos de 08:00 a 12:00\nDomingos Cerrado\n
+ lunes *
- <bot lunes>
+ martes *
- <bot martes>
+ miercoles *
- <bot miercoles>
+ jueves *
- <bot jueves>
+ viernes *
- <bot viernes>
+ sabado *
- <bot sabado>
+ domingo *
- <bot domingo>
+ (menu|carta) *
- <bot lunes> \n <bot martes> \n <bot miercoles> \n <bot jueves> \n <bot viernes> \n <bot sabado> \n <bot domingo>
+ como estas
@ hola
+ hay alguien*
@ hola
+ (telefono|celular|cel) *
- Nuestro telefono es 725648221
+ (direccion|ubicacion|lugar) *
- Nuestra direccion Colonia Emiliano Zapata Acapulco Gro
- Nos encontramos ubicados en la Colonia Emiliano Zapata Acapulco Gro
+ (entregas|a domicilio) *
- Realizamos entregas a domicilio solo de lunes a viernes de 12:00 a 15:00
+ (pagina web|web|pagina) *
- Visitanos en https://www.programadornovato.com
+ (hora|horarios|dias|abierto) *
- <bot horario>
+ *
- Recuerda que soy un robot, me podrías preguntar de otra forma
- Intenta hacer tu pregunta de otra manera.

image 27
En RecibirController.cs agregamos este codigo

//RecibirController.cs
using ChatBotWa.Models;
using Microsoft.AspNetCore.Mvc;
using System.IO;
using System.Net;
using System.Net.Http.Headers;
using System.Xml.Linq;
using RiveScript;

namespace ChatBotWa.Controllers
{
    public class RecibirController
    {
        //RECIBIMOS LOS DATOS DE VALIDACION VIA GET
        [HttpGet]
        //DENTRO DE LA RUTA webhook
        [Route("webhook")]
        //RECIBIMOS LOS PARAMETROS QUE NOS ENVIA WHATSAPP PARA VALIDAR NUESTRA URL
        public string Webhook(
            [FromQuery(Name = "hub.mode")] string mode,
            [FromQuery(Name = "hub.challenge")] string challenge,
            [FromQuery(Name = "hub.verify_token")] string verify_token
        )
        {
            //SI EL TOKEN ES hola (O EL QUE COLOQUEMOS EN FACEBOOK)
            if (verify_token.Equals("hola"))
            {
                return challenge;
            }
            else
            {
                return "";
            }
        }
        //RECIBIMOS LOS DATOS DE VIA POST
        [HttpPost]
        //DENTRO DE LA RUTA webhook
        [Route("webhook")]
        //RECIBIMOS LOS DATOS Y LOS GUARDAMOS EN EL MODELO WebHookResponseModel
        public dynamic datos([FromBody] WebHookResponseModel entry)
        {
            //ESTRAEMOS EL MENSAJE RECIBIDO
            string mensaje_recibido = entry.entry[0].changes[0].value.messages[0].text.body;
            //ESTRAEMOS EL ID UNICO DEL MENSAJE
            string id_wa = entry.entry[0].changes[0].value.messages[0].id;
            //ESTRAEMOS EL NUMERO DE TELEFONO DEL CUAL RECIBIMOS EL MENSAJE
            string telefono_wa = entry.entry[0].changes[0].value.messages[0].from;
            //INICIALIZAMOS EL BOT DE RIVESCRIPT
            var bot = new RiveScript.RiveScript(true);
            //CARGAMOS EL ARCHIVO DONDE ESTA LA CONFIGURACION DE LA IA
            bot.loadFile("restaurante.rive");
            bot.sortReplies();
            //OBTENEMOS LA RESPUESTA DEPENDIENDO DEL MENSAJE RECIBIDO
            var respuesta=bot.reply("local-user", mensaje_recibido);
            //CREAMOS EL TEXTO DEL ARCHIVO
            string texto = "mensaje_recibido="+mensaje_recibido + Environment.NewLine;
            texto = texto+ "id_wa=" + id_wa + Environment.NewLine;
            texto = texto + "telefono_wa=" + telefono_wa + Environment.NewLine;
            texto = texto + "respuesta=" + respuesta + Environment.NewLine;
            File.WriteAllText("texto.txt", texto);
            //SI NO HAY ERROR RETORNAMOS UN OK
            var response = new HttpResponseMessage(HttpStatusCode.OK);
            response.Content.Headers.ContentType = new MediaTypeHeaderValue("text/plain");
            return response;
        }
    }
}

Agregar Inteligencia Artificial a ChatBot WhatsApp en C#
Enviamos un mensaje via WhatsApp y en el archivo de texto texto.txt tendremos el mensaje recibido y la respuesta generada con inteligencia artificial

Ads Blocker Image Powered by Code Help Pro

Ads Blocker Detected!!!

En Programador Novato vivimos de los anuncios, hemos detectado que está utilizando extensiones para bloquear anuncios. Ayudanos deshabilitando tu bloqueador de anuncios. :)