public JsonResult ValidarIntencion(string nombreIntencion) { var respuesta = new Intencion(); try { var intencion = new Dialogflow.DialogFlow(oIBLSolicitud).ObtenerIntentoDialogFlow(nombreIntencion); if (intencion != null) { if (nombreIntencion.Equals(intencion.Nombre)) { respuesta.ValidacionIntencion = "EXISTE"; respuesta.IdDialogFlow = intencion.Id; } } } catch (Exception ex) { } return(new JsonResult { Data = respuesta, JsonRequestBehavior = JsonRequestBehavior.AllowGet }); }
public AlertModel DeleteIntent(Intencion intencion) { var intento = new IntentoModel(); var resultado = new AlertModel(); try { var fileSavePath = System.Web.HttpContext.Current.Server.MapPath("~/Dialogflow.json/") + ConstantesWeb.DialogFlow.FilePrivateKeyIdJson; if ((System.IO.File.Exists(fileSavePath))) { var cred = GoogleCredential.FromFile(fileSavePath); var channel = new Channel(SessionsClient.DefaultEndpoint.Host, SessionsClient.DefaultEndpoint.Port, cred.ToChannelCredentials()); var client = IntentsClient.Create(channel); client.DeleteIntent(new IntentName(ConstantesWeb.DialogFlow.ProjectId, intencion.IdDialogFlow)); oIBLSolicitud.EliminarIntencionConsulta(intencion.IdDialogFlow); resultado.Mensaje = "DELETE-OK"; } } catch (Exception ex) { resultado.MessageError = "ERROR: " + ex.Message; resultado.Mensaje = "DELETE-ERROR"; } return(resultado); }
public string CodeIntencionById(Intencion obj) { dbContext.Entry(obj).State = System.Data.Entity.EntityState.Detached; var code = dbContext.Intencions.Find(obj.IntencionID).CodigoIntencion; return(code); }
public void Puntuar(string palabra, Intencion intencion) { int usuario = player1 ? 0 : 1; puntaje.SumarPuntaje(intencion, usuario); Debug.Log("Puntaje 1: " + puntaje.Usuario1 + "\t| Puntaje 2: " + puntaje.Usuario2); }
// Controlador del conjunto de frases. //private Patron patron; private void Awake() { contenido = GetComponent <TextMeshPro>(); espacio = GetComponentInChildren <Espacio>(); palabras = new Posibilidades(); intencion = Intencion.agresivo; }
public void Celebrar(string i, Intencion a) { if (puntaje == null) { puntaje = GameManager.Instance.gameObject.GetComponent <Puntaje>(); } puntaje.Celebrar(i, a); }
// Define la palabra escogible. public override void Inicializar(string palabra, Intencion intencion) { // Establece la palabra y la intención. this.palabra = palabra; this.intencion = intencion; // Muestra la palabra. UI.Instance.MostrarPalabra(gameObject, palabra); // La palabra no ha sido escogida. escogida = false; }
public void Celebrar(string i, Intencion a) { palabraEscogida = true; Puntos = Puntuar(intFrase, a); bool encadenado = false; Celebra = CelebrationType.Descansa; if (Puntos == 1) { Celebra = CelebrationType.Fuerte; } else if (Puntos == 0.5f) { if (puntajeAnterior == Puntos) { Celebra = CelebrationType.Fuerte; encadenado = true; } else { Celebra = CelebrationType.Media; } } else if (Puntos == 0.25f) { if (puntajeAnterior == Puntos) { Celebra = CelebrationType.Descansa; encadenado = true; } else { Celebra = CelebrationType.Breve; } } if (!encadenado) { puntajeAnterior = Puntos; } else { puntajeAnterior = 0; } //StartCoroutine(Celebracion()); //Debug.Log("Celebración: " + Celebra); //Debug.Log("Encadenado: " + encadenado); }
/// <summary> /// /// </summary> /// <param name="intencionNombre"></param> /// <returns></returns> public ReturnObject <Intencion> ObtenerIntencion(string intencionNombre) { ReturnObject <Intencion> obj = new ReturnObject <Intencion>(); obj.OneResult = new Intencion(); try { using (var cnn = MSSQLSERVERCnx.MSSqlCnx()) { SqlCommand cmd = null; cnn.Open(); cmd = new SqlCommand(SP.GSAV_SP_BUSCAR_INTENCION_X_NOMBRE, cnn); cmd.CommandType = CommandType.StoredProcedure; cmd.Parameters.AddWithValue("@P_INTENCION_NOMBRE", intencionNombre); SqlDataReader rd = cmd.ExecuteReader(); if (rd.HasRows) { while (rd.Read()) { var intencion = new Intencion(); intencion.IdIntencionConsulta = rd.GetInt32(rd.GetOrdinal("IDINTENCIONCONSULTA")); intencion.Nombre = (rd.GetValue(rd.GetOrdinal("NOMBRE")) == DBNull.Value) ? string.Empty : rd.GetString(rd.GetOrdinal("NOMBRE")); intencion.IdPadreIntencion = (rd.GetValue(rd.GetOrdinal("IDPADREINTENCION")) == DBNull.Value) ? 0 : rd.GetInt32(rd.GetOrdinal("IDPADREINTENCION")); intencion.IdDialogFlow = (rd.GetValue(rd.GetOrdinal("IDDIALOGFLOW")) == DBNull.Value) ? string.Empty : rd.GetString(rd.GetOrdinal("IDDIALOGFLOW")); intencion.FechaCreacion = rd.GetDateTime(rd.GetOrdinal("FECHACREACION")); intencion.StrFechaCreacion = FormatearFechaEsp(intencion.FechaCreacion); intencion.DescripcionIntencionPadre = (rd.GetValue(rd.GetOrdinal("DESC_INTENCION_PADRE")) == DBNull.Value) ? string.Empty : rd.GetString(rd.GetOrdinal("DESC_INTENCION_PADRE")); obj.OneResult = intencion; } } obj.Success = true; } } catch (Exception ex) { obj.Success = false; obj.ErrorMessage = ex.Message; } return(obj); }
public ReturnObject <List <Intencion> > ObtenerIntencionesFrecuentes() { ReturnObject <List <Intencion> > obj = new ReturnObject <List <Intencion> >(); obj.OneResult = new List <Intencion>(); try { using (var cnn = MSSQLSERVERCnx.MSSqlCnx()) { SqlCommand cmd = null; cnn.Open(); cmd = new SqlCommand(SP.GSAV_SP_BUSCAR_INTENCIONES_FRECUENTES, cnn); cmd.CommandType = CommandType.StoredProcedure; SqlDataReader rd = cmd.ExecuteReader(); if (rd.HasRows) { while (rd.Read()) { var intencion = new Intencion(); intencion.IdIntencionConsulta = rd.GetInt32(rd.GetOrdinal("IdIntencionConsulta")); intencion.Nombre = (rd.GetValue(rd.GetOrdinal("Nombre")) == DBNull.Value) ? string.Empty : rd.GetString(rd.GetOrdinal("Nombre")); intencion.IdPadreIntencion = (rd.GetValue(rd.GetOrdinal("IdPadreIntencion")) == DBNull.Value) ? 0 : rd.GetInt32(rd.GetOrdinal("IdPadreIntencion")); intencion.IdDialogFlow = (rd.GetValue(rd.GetOrdinal("IdDialogFlow")) == DBNull.Value) ? string.Empty : rd.GetString(rd.GetOrdinal("IdDialogFlow")); intencion.FechaCreacion = rd.GetDateTime(rd.GetOrdinal("FechaCreacion")); intencion.StrFechaCreacion = FormatearFechaEsp(intencion.FechaCreacion); obj.OneResult.Add(intencion); } } obj.Success = true; } } catch (Exception ex) { obj.Success = false; obj.ErrorMessage = ex.Message; } return(obj); }
public bool sendEmail(Intencion solicitud, string body) { bool status = false; try { if (solicitud != null) { var senderEmail = new MailAddress("*****@*****.**", "Itla Puntos Técnologicos"); var receiverEmail = new MailAddress(solicitud.Email, solicitud.Nombres + " " + solicitud.Apellidos); var password = "******"; var sub = "Solicitud Intención Recibida"; //var body = "HTML"; var smtp = new SmtpClient { Host = "smtp.gmail.com", Port = 587, EnableSsl = true, DeliveryMethod = SmtpDeliveryMethod.Network, UseDefaultCredentials = false, Credentials = new NetworkCredential(senderEmail.Address, password) }; using (var mess = new MailMessage(senderEmail, receiverEmail) { Subject = sub, Body = body, IsBodyHtml = true }) { smtp.Send(mess); } //this.Logger("Email Enviado Correctamente"+ solicitud.Email, "ITLA_PE", "EmailSender", "Email status True"); status = true; return(status); } } catch (Exception ex) { // this.Logger(ex.ToString(),"ITLA_PE","EmailSender","Error Email status False"+ solicitud.Email); status = false; } return(status); }
public Intencion BuscarIntencionConsulta(string intencion) { var categoria = new Intencion(); try { var cnxOracle = ConfigurationManager.ConnectionStrings[ConnectionName].ToString(); using (var oCnn = new OracleConnection(cnxOracle)) { OracleCommand oCmd = null; oCnn.Open(); oCmd = new OracleCommand("SP_BUSCARINTENCIONCONSULTA", oCnn) { CommandType = CommandType.StoredProcedure }; oCmd.Parameters.Add(new OracleParameter("pIntencion", OracleDbType.Varchar2)).Value = intencion; oCmd.Parameters.Add(new OracleParameter("RESULTADO", OracleDbType.RefCursor)).Direction = ParameterDirection.Output; var rd = oCmd.ExecuteReader(); if (rd.HasRows) { if (rd.Read()) { categoria = new Intencion() { IdIntencion = rd.GetInt32(rd.GetOrdinal("IDINTENCIONCONSULTA")), NombreBase = rd.GetString(rd.GetOrdinal("NOMBRE")) }; } } } return(categoria); } catch (Exception) { //LogError(ex); } return(null); }
public JsonResult EliminarIntencion(string id) { var resultado = new AlertModel(); try { if (!string.IsNullOrEmpty(id)) { var intencion = new Intencion(); intencion.IdDialogFlow = id; resultado = new Dialogflow.DialogFlow(oIBLSolicitud).DeleteIntent(intencion); } } catch (Exception ex) { } return(new JsonResult { Data = resultado, JsonRequestBehavior = JsonRequestBehavior.AllowGet }); }
public Intencion IntencionAdd(ModelIntencion obj) { //var guid = new Guid(); try { Guid guids = Guid.NewGuid(); var solicitud = new Intencion { Nombres = obj.Nombres, Apellidos = obj.Apellidos, GenericID_NivelAcademico = obj.GenericID_NivelAcademico, DireccionCalleNumero = obj.DireccionCalleNumero, DireccionidMunicipio = obj.DireccionidMunicipio, Email = obj.Email, FechaNacimiento = obj.FechaNacimiento, GenericID_TipoIdentificacion = obj.GenericID_TipoIdentificacion, IdentificacionCedula = obj.IdentificacionCedula.Replace("-", ""), ResultadoComentario = obj.Apellidos, TelCelular = obj.TelCelular, TelResidencial = obj.TelResidencial, RowID = guids, ProvinciaId = obj.ProvinciaId, Ingreso_Familiar = obj.Ingreso_Familiar, TieneInternet = obj.TieneInternet, TieneLaptopPc = obj.TieneLaptopPc, TieneSubsidio = obj.TieneSubsidio, FechaCreacion = DateTime.Now, CarreraID = obj.CarreraID }; var result = dbContext.Intencions.Add(solicitud); dbContext.SaveChanges(); // this.Logger("Solicitud Creada correctamente", "ITLA_PE", "SolicitudAdd", "Solicitud Creada para: "+ result.SolicitudID+" "+result.Nombres+" "+result.Apellidos); return(result); } catch (Exception ex) { // this.Logger(ex.ToString(), "ITLA_PE", "SolicitudAdd", "Error creando solicitud"); throw ex; } }
public JsonResult ActualizarIntencion(string id, string nombreIntencion, string frases, string respuesta, string idIntencionPadre) { var resultado = new AlertModel(); try { if (!string.IsNullOrEmpty(id)) { if (id.Equals("NEW")) { var intencion = new Intencion(); intencion.IdDialogFlow = id; intencion.Nombre = nombreIntencion; intencion.Respuesta = respuesta; intencion.IdIntencionPadre = idIntencionPadre; var frases_ = JsonConvert.DeserializeObject <List <FraseEntrenamientoModel> >(frases); resultado = new Dialogflow.DialogFlow(oIBLSolicitud).CreateIntent(intencion, frases_); } else { var intencion = new Intencion(); intencion.IdDialogFlow = id; intencion.Respuesta = respuesta; intencion.IdIntencionPadre = idIntencionPadre; var frases_ = JsonConvert.DeserializeObject <List <FraseEntrenamientoModel> >(frases); resultado = new Dialogflow.DialogFlow(oIBLSolicitud).UpdateIntent(intencion, frases_); } } } catch (Exception ex) { } return(new JsonResult { Data = resultado, JsonRequestBehavior = JsonRequestBehavior.AllowGet }); }
public Intencion BuscarIntencionConsulta(string nombreIntencion) { var intencion = new Intencion(); try { using (var cnn = MSSQLSERVERCnx.MSSqlCnx()) { SqlCommand cmd = null; cnn.Open(); cmd = new SqlCommand(SP.GSAV_SP_BUSCARINTENCIONCONSULTA, cnn) { CommandType = CommandType.StoredProcedure }; cmd.Parameters.AddWithValue("@P_INTENCION_NOMBRE", nombreIntencion); SqlDataReader rd = cmd.ExecuteReader(); if (rd.HasRows) { if (rd.Read()) { intencion.IdIntencion = rd.GetInt32(rd.GetOrdinal("IDINTENCIONCONSULTA")); intencion.NombreBase = rd.GetString(rd.GetOrdinal("INTENCION_BASE")); } } } } catch (Exception ex) { Console.WriteLine(ex.Message); LogError(ex); } return(intencion); }
void LlenarEspacio(string palabra, Intencion intencion) { text.text = palabra.ToLower(); //frase.PasarEspacio(); }
/* * private void Awake(string palabra) * { * this.palabra = palabra; * } */ public abstract void Inicializar(string palabra, Intencion intencion);
public AlertModel UpdateIntent(Intencion intencion, List <FraseEntrenamientoModel> frases) { var intento = new IntentoModel(); var resultado = new AlertModel(); try { var fileSavePath = System.Web.HttpContext.Current.Server.MapPath("~/Dialogflow.json/") + ConstantesWeb.DialogFlow.FilePrivateKeyIdJson; if ((System.IO.File.Exists(fileSavePath))) { var cred = GoogleCredential.FromFile(fileSavePath); var channel = new Channel(SessionsClient.DefaultEndpoint.Host, SessionsClient.DefaultEndpoint.Port, cred.ToChannelCredentials()); var client = IntentsClient.Create(channel); GetIntentRequest getRequest = new GetIntentRequest { IntentName = new IntentName(ConstantesWeb.DialogFlow.ProjectId, intencion.IdDialogFlow), IntentView = IntentView.Full }; var intent = client.GetIntent(getRequest); //Actualizar Frases de Entrenamiento intent.TrainingPhrases.Clear(); foreach (var frase_ in frases) { var trainingPhrasesParts = new List <string>(); trainingPhrasesParts.Add(frase_.Descripcion); var phraseParts = new List <Intent.Types.TrainingPhrase.Types.Part>(); foreach (var part in trainingPhrasesParts) { phraseParts.Add(new Intent.Types.TrainingPhrase.Types.Part() { Text = part }); } var trainingPhrase = new Intent.Types.TrainingPhrase(); trainingPhrase.Parts.AddRange(phraseParts); intent.TrainingPhrases.Add(trainingPhrase); } //Actualizar Respuesta intent.Messages.Clear(); var text = new Intent.Types.Message.Types.Text(); text.Text_.Add(intencion.Respuesta); var message_ = new Intent.Types.Message() { Text = text }; intent.Messages.Add(message_); UpdateIntentRequest updRequest = new UpdateIntentRequest { Intent = intent }; Intent response = client.UpdateIntent(updRequest); resultado.DisplayName = response.DisplayName; resultado.Mensaje = "UPDATE-OK"; } } catch (Exception ex) { resultado.MessageError = "ERROR: " + ex.Message; resultado.Mensaje = "UPDATE-ERROR"; } return(resultado); }
public static async Task Process(IDialogContext context) { var activity = context.Activity as Activity; Sesion sesion = context.UserData.GetValue <Sesion>("sesion"); context.UserData.SetValue("Usuario", sesion.Nombre); var container = new Container(); UnityConfig.RegisterTypes(container); /* 4.1.4 El Sistema crea una nueva Solicitud Académica con los datos indicados líneas abajo * en la entidad[GSAV_SolicitudAcadémica], generando un código único */ Solicitud solicitud = new Solicitud(); if (context.UserData.ContainsKey("solicitud")) { solicitud = LeerSolicitud(sesion, context, activity, container); if (solicitud.Estado != "P") { solicitud = CrearNuevaSolicitud(sesion, context, activity, container); } } else { solicitud = CrearNuevaSolicitud(sesion, context, activity, container); } try { DialogEngine handler = container.GetInstance <DialogEngine>(); Result receivedResult = await handler.GetSpeechAsync(activity, sesion, context); IIntencion intencionManager = container.GetInstance <IIntencion>(); /* * 4.1.5 El Sistema valida si existe una “Intención de Consulta” para la pregunta * ingresada por el alumno a través del Agente de Procesamiento de Lenguaje Natural. * GSAV _RN013 – Tipos de Consultas Académicas */ if (receivedResult.ExistIntent) { /* * 4.1.6 El Sistema valida si la “Intención de Consulta” obtenida tiene una probabilidad * mayor o igual al 80 %.GSAV _RN018– Porcentaje para respuestas certera */ var intentScore = receivedResult.Intents.FirstOrDefault().Score; if (receivedResult.ExistValidIntent) { string intent = receivedResult.GetValidIntent(); Intencion intencion = intencionManager.ObtenerCategoria(intent); context.UserData.SetValue("result", receivedResult); if (string.IsNullOrEmpty(intencion.NombreBase)) { intencion.NombreBase = intent; } context.UserData.SetValue("intencion", intencion); if (!string.IsNullOrEmpty(intent)) { string dfParams = receivedResult.Intents[0].Parameters; string dfContext = receivedResult.OutputContexts; Dictionary <string, string> listParams = JsonConvert.DeserializeObject <Dictionary <string, string> >(dfParams); string course = string.Empty; string assignment = string.Empty; int number = 0; if (listParams.Count > 0) { if (listParams.ContainsKey("Curso")) { course = listParams["Curso"]; context.UserData.SetValue("Curso", course); } if (listParams.ContainsKey("Tarea")) { assignment = listParams["Tarea"]; context.UserData.SetValue("Tarea", assignment); } if (listParams.ContainsKey("number")) { int.TryParse(listParams["number"], out number); context.UserData.SetValue("number", number); } } var message = context.MakeMessage(); switch (intencion.NombreBase) { case "ActividadAcademica": message.Text = $"Esta es una consulta de: {intent}"; context.PrivateConversationData.SetValue("custom", message.Text); await context.PostAsync(message); await ActualizarSolicitud(context, AppConstant.EstadoSolicitud.ATENDIDO); context.Wait(MenuDialog.MessageReceivedAsync); break; case AppConstant.Intencion.PROGRAMACION: if (receivedResult.Intents[0].AllRequiredParamsPresent) { string fechaActividad = string.Empty; int numberSelected = context.UserData.GetValue <int>("number"); var actividadManager = container.GetInstance <IActividad>(); List <ActivitiesByCourseViewModel> activities = actividadManager.GetActivitiesByCourse(solicitud.IdAlumno); var filtered = activities.Where(o => o.Curso == course && o.Actividad == assignment); ActivitiesByCourseViewModel a = new ActivitiesByCourseViewModel(); if (filtered.Count() == 0) { //context.Call(new NoRespuestaDialog(), MenuDialog.ResumeAfterDerivedAcademicIntent); await ActualizarSolicitud(context, AppConstant.EstadoSolicitud.DERIVADA); context.Wait(MenuDialog.MessageReceivedAsync); return; } if (numberSelected > 0) { a = filtered.Where(o => o.NumeroActividad == numberSelected).FirstOrDefault(); fechaActividad = a?.FechaActividad.ToString("dd MMMM yyyy"); } else { a = filtered.Where(o => o.FechaActividad >= DateTime.Now).FirstOrDefault(); fechaActividad = a?.FechaActividad.ToString("dd MMMM yyyy"); } if (a == null) { a = new ActivitiesByCourseViewModel(); } context.UserData.SetValue("Actividad", a); if (!string.IsNullOrEmpty(fechaActividad)) { if (string.IsNullOrEmpty(receivedResult.Speech)) { string tareaConNumero = assignment; if (number > 0) { tareaConNumero = $"{assignment} {number}"; } receivedResult.Speech = $"La fecha de actividad de la {tareaConNumero} del Curso {course} es: {fechaActividad}"; } else { receivedResult.Speech = receivedResult.Speech + " " + fechaActividad; } context.UserData.SetValue("result", receivedResult); await context.PostAsync(receivedResult.Speech); //await context.Forward(new MenuDialog(), MenuDialog.ResumeAfterSuccessAcademicIntent, context, CancellationToken.None); //context.Wait(MenuDialog.ResumeAfterSuccessAcademicIntent); //context.Call(new MenuDialog(), MenuDialog.ResumeAfterSuccessAcademicIntent); await ActualizarSolicitud(context, AppConstant.EstadoSolicitud.ATENDIDO); context.Wait(MenuDialog.MessageReceivedAsync); } else { //context.Wait(MenuDialog.ResumeAfterFailedAcademicIntent); //await context.PostAsync(receivedResult.Speech); await context.PostAsync("La información ingresada es invalida, ingrese nuevamente su consulta"); //context.Call(new NoRespuestaDialog(), MenuDialog.ResumeAfterDerivedAcademicIntent); //await ActualizarSolicitud(context, AppConstant.EstadoSolicitud.FALTAINFORMACION); //context.Wait(MenuDialog.MessageReceivedAsync); //context.Call(new ProgramacionActividadesDialog(), MenuDialog.ResumeAfterSuccessAcademicIntent); await ActualizarSolicitud(context, AppConstant.EstadoSolicitud.INVALIDO); context.Wait(MenuDialog.MessageReceivedAsync); } } else { if (string.IsNullOrEmpty(course)) { var cursoManager = container.GetInstance <ICurso>(); List <CourseByModuleViewModel> studentActiveCourses = cursoManager.GetCourseByModuleActive(solicitud.IdAlumno); var questions = studentActiveCourses.Select(x => x.Curso).ToList();; string QuestionPrompt = "Por favor seleccione el curso?"; string invalidCourseInput = "La información ingresada es invalida, ingrese nuevamente su consulta"; PromptOptions <string> options = new PromptOptions <string>(QuestionPrompt, "", invalidCourseInput, questions, 0); // Overrided the PromptOptions Constructor. PromptDialog.Choice(context, MenuDialog.OnCourseSelected, options); } else { await context.PostAsync(receivedResult.Speech); } context.Wait(MenuDialog.MessageReceivedAsync); } break; case AppConstant.Intencion.CREDITOSCUSTOM: if (receivedResult.Intents[0].AllRequiredParamsPresent) { var actividadManager = container.GetInstance <IActividad>(); List <ActivitiesByCourseViewModel> activities = actividadManager.GetActivitiesByCourse(solicitud.IdAlumno); var filtered = activities.Where(o => o.Curso == course); await context.PostAsync(receivedResult.Speech + " " + 0); //context.Wait(MenuDialog.ResumeAfterSuccessAcademicIntent); //context.Call(new MenuDialog(), MenuDialog.ResumeAfterSuccessAcademicIntent); context.Wait(MenuDialog.MessageReceivedAsync); } else { if (string.IsNullOrEmpty(course)) { var cursoManager = container.GetInstance <ICurso>(); List <CourseByModuleViewModel> studentActiveCourses = cursoManager.GetCourseByModuleActive(solicitud.IdAlumno); var questions = studentActiveCourses.Select(x => x.Curso).ToList();; string QuestionPrompt = "Por favor seleccione el curso?"; string invalidCourseInput = "La información ingresada es invalida, ingrese nuevamente su consulta"; PromptOptions <string> options = new PromptOptions <string>(QuestionPrompt, "", invalidCourseInput, questions, 0); // Overrided the PromptOptions Constructor. PromptDialog.Choice(context, MenuDialog.OnCourseSelected, options); } else { await context.PostAsync(receivedResult.Speech); } context.Wait(MenuDialog.MessageReceivedAsync); } break; case AppConstant.Intencion.CREDITOS: case AppConstant.Intencion.ORGANIZACION: case AppConstant.Intencion.CALENDARIO: //case "OrganizacionAulaVirtual1": //context.Call(new CalendarioDialog(), ResumeAfterSuccessAcademicIntent); message = context.MakeMessage(); message.Text = $"Esta es una consulta de: {intent}"; //receivedResult.Speech = message.Text; context.PrivateConversationData.SetValue("custom", message.Text); await context.PostAsync(message); //context.Wait(MenuDialog.MessageReceivedAsync); //context.Call(new MenuDialog(), ResumeAfterSuccessAcademicIntent); //context.Wait(MenuDialog.ResumeAfterSuccessAcademicIntent); //context.Call(new MenuDialog(), MenuDialog.ResumeAfterSuccessAcademicIntent); await ActualizarSolicitud(context, AppConstant.EstadoSolicitud.ATENDIDO); context.Wait(MenuDialog.MessageReceivedAsync); break; //case AppConstant.Intencion.ORGANIZACION: // context.Call(new OrganizacionDialog(), ResumeAfterSuccessAcademicIntent); // break; case AppConstant.Intencion.MATRICULA: case AppConstant.Intencion.ASISTENCIA: case AppConstant.Intencion.RETIRO: case AppConstant.Intencion.PROMEDIO: //context.Call(new PreguntasFrecuentesDialog(), MenuDialog.ResumeAfterSuccessAcademicIntent); //if (receivedResult.Speech.Equals(string.Empty)) //{ // receivedResult.Speech = "Por favor, canalice su consulta vía Contacto UPC: http://www.upc.edu.pe/servicios/contacto-upc"; //} await context.PostAsync(receivedResult.Speech); await ActualizarSolicitud(context, AppConstant.EstadoSolicitud.ATENDIDO); context.Wait(MenuDialog.MessageReceivedAsync); break; //case AppConstant.Intencion.CREDITOS: // context.Call(new CreditosDialog(), ResumeAfterSuccessAcademicIntent); // break; case AppConstant.Intencion.DEFAULT: if (receivedResult.Speech.Equals(string.Empty)) { receivedResult.Speech = "Por favor, canalice su consulta vía Contacto UPC: http://www.upc.edu.pe/servicios/contacto-upc"; } await context.PostAsync(receivedResult.Speech); await ActualizarSolicitud(context, AppConstant.EstadoSolicitud.INVALIDO); context.Wait(MenuDialog.MessageReceivedAsync); //context.Call(new NoRespuestaDialog(), MenuDialog.ResumeAfterFailedAcademicIntent); break; default: //context.Call(new NoRespuestaDialog(), MenuDialog.ResumeAfterDerivedAcademicIntent); await ActualizarSolicitud(context, AppConstant.EstadoSolicitud.DERIVADA); context.Wait(MenuDialog.MessageReceivedAsync); break; } } else { var userName = context.UserData.GetValue <Sesion>("sesion").Nombre; var message = context.MakeMessage(); message.Text = $"Uhmmm... {userName} estoy entrenándome para ayudarte más adelante con este tipo de dudas.{Environment.NewLine} Pero recuerda que vía Contacto UPC: http://www.upc.edu.pe/servicios/contacto-upc puedes resolver tus dudas o consultas."; context.PrivateConversationData.SetValue("custom", message.Text); await context.PostAsync(message); await ActualizarSolicitud(context, AppConstant.EstadoSolicitud.INVALIDO); //context.Wait(MenuDialog.ResumeGetAcademicIntent); context.Wait(MenuDialog.MessageReceivedAsync); } } else { //ExistValidIntent = false //context.Call(new SinScoreDialog(), MenuDialog.ResumeAfterDerivedAcademicIntent); var userName = context.UserData.GetValue <Sesion>("sesion").NombreApePaterno; var message = context.MakeMessage(); message.Text = $"Uhmmm... {userName} estoy entrenándome para ayudarte más adelante con este tipo de dudas.{Environment.NewLine} Pero recuerda que vía Contacto UPC: http://www.upc.edu.pe/servicios/contacto-upc puedes resolver tus dudas o consultas."; context.PrivateConversationData.SetValue("custom", message.Text); await context.PostAsync(message); //context.Call(new MenuDialog(), MenuDialog.ResumeAfterUnknownAcademicIntent); await ActualizarSolicitud(context, AppConstant.EstadoSolicitud.INVALIDO); context.Wait(MenuDialog.MessageReceivedAsync); } } else { //ExistIntent = false //await ActualizarSolicitud(context, AppConstant.EstadoSolicitud.INVALIDO); //context.Call(new SinScoreDialog(), MenuDialog.ResumeAfterUnknownAcademicIntent); var userName = context.UserData.GetValue <Sesion>("sesion").NombreApePaterno; string sinScoreDialogSpeech = $"Uhmmm... {userName} estoy entrenándome para ayudarte más adelante con este tipo de dudas.{Environment.NewLine}. Pero recuerda que vía Contacto UPC: http://www.upc.edu.pe/servicios/contacto-upc puedes resolver tus dudas o consultas"; await context.PostAsync(sinScoreDialogSpeech); //context.Call(new MenuDialog(), MenuDialog.ResumeAfterUnknownAcademicIntent); await ActualizarSolicitud(context, AppConstant.EstadoSolicitud.INVALIDO); context.Wait(MenuDialog.MessageReceivedAsync); } } catch (Exception ex) { Console.WriteLine(ex.Message); BaseData.LogError(ex); } }
public AlertModel CreateIntent(Intencion intencion, List <FraseEntrenamientoModel> frases) { var intento = new IntentoModel(); var resultado = new AlertModel(); try { var fileSavePath = System.Web.HttpContext.Current.Server.MapPath("~/Dialogflow.json/") + ConstantesWeb.DialogFlow.FilePrivateKeyIdJson; if ((System.IO.File.Exists(fileSavePath))) { var cred = GoogleCredential.FromFile(fileSavePath); var channel = new Channel(SessionsClient.DefaultEndpoint.Host, SessionsClient.DefaultEndpoint.Port, cred.ToChannelCredentials()); var client = IntentsClient.Create(channel); var intent = new Intent(); intent.DisplayName = intencion.Nombre; //Actualizar Frases de Entrenamiento intent.TrainingPhrases.Clear(); foreach (var frase_ in frases) { var trainingPhrasesParts = new List <string>(); trainingPhrasesParts.Add(frase_.Descripcion); var phraseParts = new List <Intent.Types.TrainingPhrase.Types.Part>(); foreach (var part in trainingPhrasesParts) { phraseParts.Add(new Intent.Types.TrainingPhrase.Types.Part() { Text = part }); } var trainingPhrase = new Intent.Types.TrainingPhrase(); trainingPhrase.Parts.AddRange(phraseParts); intent.TrainingPhrases.Add(trainingPhrase); } //Actualizar Respuesta intent.Messages.Clear(); var text = new Intent.Types.Message.Types.Text(); text.Text_.Add(intencion.Respuesta); var message_ = new Intent.Types.Message() { Text = text }; intent.Messages.Add(message_); var newIntent = client.CreateIntent( parent: new ProjectAgentName(ConstantesWeb.DialogFlow.ProjectId), intent: intent ); resultado.Id = newIntent.IntentName.IntentId; resultado.DisplayName = newIntent.DisplayName; oIBLSolicitud.InsertarIntencionConsulta(newIntent.DisplayName, newIntent.IntentName.IntentId, ConvertidorUtil.GmtToPacific(DateTime.Now), intencion.IdIntencionPadre); resultado.Mensaje = "INSERT-OK"; } } catch (Exception ex) { resultado.MessageError = "ERROR: " + ex.Message; resultado.Mensaje = "INSERT-ERROR"; } return(resultado); }
public void SumarPuntaje(Intencion intPalabra, int usuario) { Puntos = Puntuar(intFrase, intPalabra); puntajes[usuario] += Puntos; }
public static void CambiarIntFrase(Intencion intencion) { intFrase = intencion; }
public float Puntuar(Intencion frase, Intencion palabra) { switch (frase) { case Intencion.agresivo: if (palabra == Intencion.agresivo) { return(1f); } else if (palabra == Intencion.comico) { return(0.25f); } else if (palabra == Intencion.ego) { return(0.5f); } else { break; } case Intencion.comico: if (palabra == Intencion.agresivo) { return(0.5f); } else if (palabra == Intencion.comico) { return(1f); } else if (palabra == Intencion.ego) { return(0.25f); } else { break; } case Intencion.ego: if (palabra == Intencion.agresivo) { return(0.5f); } else if (palabra == Intencion.comico) { return(0.25f); } else if (palabra == Intencion.ego) { return(1f); } else { break; } } return(0); }
/// <summary> /// /// </summary> /// <param name="idSolicitud"></param> /// <param name="solucion"></param> /// <returns></returns> public JsonResult EnviarSolucionSolicitud( string idSolicitud, string intencionPadre, string solucion, string accion, string nombreIntencion, string frase1, string frase2, string solucionIntencion, string curso, string actividad, string idDialogFlow) { var respuesta = string.Empty; try { if (accion.Equals("NEW")) { var intencion = new Intencion(); intencion.IdDialogFlow = "NEW"; intencion.Nombre = nombreIntencion; intencion.Respuesta = solucionIntencion; intencion.IdIntencionPadre = intencionPadre; var frases_ = new List <FraseEntrenamientoModel>(); frases_.Add(new FraseEntrenamientoModel { Descripcion = frase1 }); frases_.Add(new FraseEntrenamientoModel { Descripcion = frase2 }); var resultado = new Dialogflow.DialogFlow(oIBLSolicitud).CreateIntent(intencion, frases_); } if (accion.Equals("EDIT")) { var intencion = new Intencion(); intencion.IdDialogFlow = idDialogFlow; intencion.Respuesta = respuesta; intencion.IdIntencionPadre = intencionPadre; var frases_ = new List <FraseEntrenamientoModel>(); frases_.Add(new FraseEntrenamientoModel { Descripcion = frase1 }); frases_.Add(new FraseEntrenamientoModel { Descripcion = frase2 }); var resultado = new Dialogflow.DialogFlow(oIBLSolicitud).UpdateIntent(intencion, frases_); } var solicitud = new Solicitud(); solicitud.IdSolicitud = ConvertidorUtil.ConvertirInt32(idSolicitud); solicitud.Solucion = solucion; var objResult = oIBLSolicitud.EnviarSolucionSolicitud(solicitud); var notificacion = objResult.OneResult; if (notificacion != null) { var email = new EmailUtil(); var sendEmail = email.NotificarSolucionConsultaAcademica(notificacion); if (sendEmail) { respuesta = "SEND_EMAIL_OK"; } } } catch (Exception ex) { } return(new JsonResult { Data = respuesta, JsonRequestBehavior = JsonRequestBehavior.AllowGet }); }