 
                    	
					
                    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

Codigo para Agregar Inteligencia Artificial a ChatBot WhatsApp

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.

//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;
        }
    }
}


