示例#1
0
        public List <FraseEntrenamientoModel> ObtenerFrasesEntrenamiento(string intentId)
        {
            var lista = new List <FraseEntrenamientoModel>();

            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 request = new GetIntentRequest
                    {
                        IntentName = new IntentName(ConstantesWeb.DialogFlow.ProjectId, intentId),
                        IntentView = IntentView.Full
                    };


                    var intent = client.GetIntent(request);

                    //Frases de Entrenamiento
                    var feId = 1;
                    foreach (var trainingPhrase in intent.TrainingPhrases)
                    {
                        var fraseEntrenamiento = new FraseEntrenamientoModel();
                        fraseEntrenamiento.Id    = feId++;
                        fraseEntrenamiento.StrId = trainingPhrase.Name;
                        fraseEntrenamiento.Tipo  = trainingPhrase.Type + string.Empty;

                        foreach (var phrasePart in trainingPhrase.Parts)
                        {
                            fraseEntrenamiento.Descripcion = fraseEntrenamiento.Descripcion + " " + phrasePart.Text;
                        }
                        lista.Add(fraseEntrenamiento);
                    }
                }

                lista = lista.OrderBy(x => x.Descripcion).ToList();
            }
            catch (Exception ex)
            {
            }
            return(lista);
        }
示例#2
0
        public IntentoModel ObtenerIntentoDialogFlow(string nombreIntento)
        {
            var pIntento = new IntentoModel();

            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);

                    ListIntentsRequest request = new ListIntentsRequest
                    {
                        ParentAsProjectAgentName = new ProjectAgentName(ConstantesWeb.DialogFlow.ProjectId),
                        IntentView = IntentView.Full
                    };

                    var intents = client.ListIntents(request);

                    foreach (var intent in intents)
                    {
                        var intento = new IntentoModel();
                        intento.Id     = intent.IntentName.IntentId;
                        intento.Nombre = intent.DisplayName;


                        if (intento.Nombre.ToUpper().Equals(nombreIntento.ToUpper()))
                        {
                            //Frases de Entrenamiento
                            var feId = 1;
                            foreach (var trainingPhrase in intent.TrainingPhrases)
                            {
                                var fraseEntrenamiento = new FraseEntrenamientoModel();
                                fraseEntrenamiento.Id    = feId++;
                                fraseEntrenamiento.StrId = trainingPhrase.Name;

                                foreach (var phrasePart in trainingPhrase.Parts)
                                {
                                    fraseEntrenamiento.Descripcion = phrasePart.Text;
                                }

                                intento.FrasesEntrenamiento.Add(fraseEntrenamiento);
                            }

                            //Respuestas
                            foreach (var message in intent.Messages)
                            {
                                if (message.Text != null)
                                {
                                    var idRespuesta = 0;
                                    foreach (var text in message.Text.Text_)
                                    {
                                        idRespuesta++;
                                        var respuesta = new RespuestaIntentoModel();
                                        respuesta.Id          = idRespuesta + string.Empty;
                                        respuesta.Descripcion = text;
                                        intento.Respuestas.Add(respuesta);
                                    }
                                }
                            }
                            pIntento = intento;
                        }
                    }
                }
            }
            catch (Exception ex)
            {
            }

            return(pIntento);
        }
示例#3
0
        public List <IntentoModel> ObtenerIntentos()
        {
            var intentos = new List <IntentoModel>();

            try
            {
                List <GSAV.Entity.Objects.Intencion> intenciones = oIBLSolicitud.ObtenerIntenciones().OneResult;


                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);

                    ListIntentsRequest request = new ListIntentsRequest
                    {
                        ParentAsProjectAgentName = new ProjectAgentName(ConstantesWeb.DialogFlow.ProjectId),
                        IntentView = IntentView.Full
                    };

                    var intents       = client.ListIntents(request);
                    var intentoValido = false;

                    foreach (var intent in intents)
                    {
                        var intento = new IntentoModel();
                        intento.Id     = intent.IntentName.IntentId;
                        intento.Nombre = intent.DisplayName;
                        intentoValido  = false;

                        var row = intenciones.AsEnumerable().Where(q => q.IdDialogFlow.Equals(intento.Id)).FirstOrDefault();
                        if (row != null)
                        {
                            intento.IdIntencionConsulta = row.IdIntencionConsulta + string.Empty;
                            intento.FechaCreacion       = row.StrFechaCreacion;
                            intento.IdIntencionPadre    = row.IdPadreIntencion + string.Empty;
                            intentoValido = true;
                        }

                        if (intentoValido)
                        {
                            //Frases de Entrenamiento
                            var feId = 1;
                            foreach (var trainingPhrase in intent.TrainingPhrases)
                            {
                                var fraseEntrenamiento = new FraseEntrenamientoModel();
                                fraseEntrenamiento.Id    = feId++;
                                fraseEntrenamiento.StrId = trainingPhrase.Name;

                                foreach (var phrasePart in trainingPhrase.Parts)
                                {
                                    fraseEntrenamiento.Descripcion = phrasePart.Text;
                                }

                                intento.FrasesEntrenamiento.Add(fraseEntrenamiento);
                            }

                            //Respuestas
                            foreach (var message in intent.Messages)
                            {
                                if (message.Text != null)
                                {
                                    var idRespuesta = 0;
                                    foreach (var text in message.Text.Text_)
                                    {
                                        idRespuesta++;
                                        var respuesta = new RespuestaIntentoModel();
                                        respuesta.Id          = idRespuesta + string.Empty;
                                        respuesta.Descripcion = text;
                                        intento.Respuestas.Add(respuesta);
                                    }
                                }
                            }

                            intentos.Add(intento);
                        }
                    }

                    intentos = intentos.OrderBy(x => x.Nombre).ToList();
                }
            }
            catch (Exception ex)
            {
            }

            return(intentos);
        }