public static void CreateNewIntent(string messageText, string trainingPhrasesPart) { IntentsClient client = IntentsClient.Create(); Intent.Types.Message.Types.Text text = new Intent.Types.Message.Types.Text(); text.Text_.Add(messageText); Intent.Types.Message message = new Intent.Types.Message() { Text = text }; List <Intent.Types.TrainingPhrase.Types.Part> phraseParts = new List <Intent.Types.TrainingPhrase.Types.Part>(); phraseParts.Add(new Intent.Types.TrainingPhrase.Types.Part() { Text = trainingPhrasesPart }); Intent.Types.TrainingPhrase trainingPhrase = new Intent.Types.TrainingPhrase(); trainingPhrase.Parts.AddRange(phraseParts); Intent intent = new Intent(); intent.DisplayName = trainingPhrasesPart; intent.Messages.Add(message); intent.TrainingPhrases.Add(trainingPhrase); Intent newIntent = client.CreateIntent( parent: new AgentName(projectId), intent: intent ); Console.WriteLine($"Created Intent: {newIntent.Name}"); }
private static WebhookResponse InitializeResponse(bool expectUserInput, string userId) { WebhookResponse webResp = new WebhookResponse(); var message = new Intent.Types.Message(); webResp.FulfillmentMessages.Add(message); message.Platform = Intent.Types.Message.Types.Platform.ActionsOnGoogle; Value payloadVal = new Value(); payloadVal.StructValue = new Struct(); Value expectedUserResp = new Value(); expectedUserResp.BoolValue = expectUserInput; payloadVal.StructValue.Fields.Add("expectUserResponse", expectedUserResp); Value userStorageValue = new Value(); UserStorage userStorage = new UserStorage(); userStorage.UserId = userId; userStorageValue.StringValue = JsonConvert.SerializeObject(userStorage); payloadVal.StructValue.Fields.Add("userStorage", userStorageValue); Struct payloadStruct = new Struct(); payloadStruct.Fields.Add("google", payloadVal); webResp.Payload = payloadStruct; return(webResp); }
public ActionResult CriarIntencao() { Google.Cloud.Dialogflow.V2.IntentsClient c = IntentsClient.Create(); Intent intent = new Intent(); intent.DisplayName = "Curso.Nome"; var frase1 = new Intent.Types.TrainingPhrase(); frase1.Parts.Add(new Intent.Types.TrainingPhrase.Types.Part() { Text = "Qual o valor do curso de " }); frase1.Parts.Add(new Intent.Types.TrainingPhrase.Types.Part() { Text = "sistemas de informação", EntityType = "Cursos" }); var frase2 = new Intent.Types.TrainingPhrase(); frase2.Parts.Add(new Intent.Types.TrainingPhrase.Types.Part() { Text = "Qual o preço do curso de " }); frase2.Parts.Add(new Intent.Types.TrainingPhrase.Types.Part() { Text = "sistemas de informação", EntityType = "Cursos" }); intent.TrainingPhrases.Add(frase1); intent.TrainingPhrases.Add(frase2); var resposta = new Intent.Types.Message(); resposta.Text = new Intent.Types.Message.Types.Text(); resposta.Text.Text_.Add("1000.00"); intent.Messages.Add(resposta); var request = new Google.Cloud.Dialogflow.V2.CreateIntentRequest(); request.Intent = intent; request.ParentAsProjectAgentName = new ProjectAgentName(_agentName); c.CreateIntent(request); return(Ok("Entidade criada")); }
public override async Task <WebhookResponse> HandleAsync(WebhookRequest req) { var searchTerm = req.QueryResult.Parameters.Fields["searchterm"].StringValue; DialogflowApp.Show($"<div>Searching for pictures of: {searchTerm}</div><div>Please wait...</div>"); var searchService = CreateSearchClient(); var result = await searchService.Images.SearchAsync(query : searchTerm); // Store images in state var images = result.Value .Select(x => new ConvState.Image { Title = x.Name, Url = x.ThumbnailUrl }) .ToList(); conversation.State.ImageList = images; var imageList = images.Select(x => $"<li><img src=\"{x.Url}\" alt=\"{WebUtility.HtmlEncode(x.Title)}\" style=\"width:200px\" /></li>"); DialogflowApp.Show($"<ol>{string.Join("", imageList)}</ol>"); // var response = new WebhookResponse(); var message = new Intent.Types.Message(); message.CarouselSelect = new Intent.Types.Message.Types.CarouselSelect(); foreach (var image in images) { var item = new Intent.Types.Message.Types.CarouselSelect.Types.Item(); item.Title = image.Title; var current = new Intent.Types.Message.Types.Image(); current.ImageUri = image.Url; item.Image = current; message.CarouselSelect.Items.Add(item); } // response.FulfillmentMessages.Add(message); // response.FulfillmentText = $"Found some pictures of: {searchTerm}. Now, select a picture."; // return response; return(new WebhookResponse { FulfillmentMessages = { message }, FulfillmentText = $"Found some pictures of: {searchTerm}. Now, select a picture.", Source = "" }); // return new WebhookResponse // { // FulfillmentText = $"Found some pictures of: {searchTerm}. Now, select a picture." // }; }
// [START dialogflow_create_intent] public static int Create(string projectId, string displayName, string messageText, string[] trainingPhrasesParts) { var client = IntentsClient.Create(); var text = new Intent.Types.Message.Types.Text(); text.Text_.Add(messageText); var message = new Intent.Types.Message() { Text = text }; 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); var intent = new Intent(); intent.DisplayName = displayName; intent.Messages.Add(message); intent.TrainingPhrases.Add(trainingPhrase); var newIntent = client.CreateIntent( parent: new ProjectAgentName(projectId), intent: intent ); Console.WriteLine($"Created Intent: {newIntent.Name}"); return(0); }
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 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); }