// [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); }
/// <summary>Snippet for ListIntentsAsync</summary> public async Task ListIntentsAsync2() { // Snippet: ListIntentsAsync(ProjectAgentName,string,string,int?,CallSettings) // Create client IntentsClient intentsClient = await IntentsClient.CreateAsync(); // Initialize request argument(s) ProjectAgentName parent = new ProjectAgentName("[PROJECT]"); string languageCode = ""; // Make the request PagedAsyncEnumerable <ListIntentsResponse, Intent> response = intentsClient.ListIntentsAsync(parent: parent, languageCode: languageCode); // Iterate over all response items, lazily performing RPCs as required await response.ForEachAsync((Intent item) => { // Do something with each item Console.WriteLine(item); }); // Or iterate over pages (of server-defined size), performing one RPC per page await response.AsRawResponses().ForEachAsync((ListIntentsResponse page) => { // Do something with each page of items Console.WriteLine("A page of results:"); foreach (Intent item in page) { Console.WriteLine(item); } }); // Or retrieve a single page of known size (unless it's the final page), performing as many RPCs as required int pageSize = 10; Page <Intent> singlePage = await response.ReadPageAsync(pageSize); // Do something with the page of items Console.WriteLine($"A page of {pageSize} results (unless it's the final page):"); foreach (Intent item in singlePage) { Console.WriteLine(item); } // Store the pageToken, for when the next page is required. string nextPageToken = singlePage.NextPageToken; // End snippet }
/// <summary>Snippet for UpdateIntentAsync</summary> public async Task UpdateIntentAsync_RequestObject() { // Snippet: UpdateIntentAsync(UpdateIntentRequest,CallSettings) // Additional: UpdateIntentAsync(UpdateIntentRequest,CancellationToken) // Create client IntentsClient intentsClient = await IntentsClient.CreateAsync(); // Initialize request argument(s) UpdateIntentRequest request = new UpdateIntentRequest { Intent = new Intent(), LanguageCode = "", }; // Make the request Intent response = await intentsClient.UpdateIntentAsync(request); // End snippet }
/// <summary>Snippet for CreateIntentAsync</summary> public async Task CreateIntentAsync_RequestObject() { // Snippet: CreateIntentAsync(CreateIntentRequest,CallSettings) // Additional: CreateIntentAsync(CreateIntentRequest,CancellationToken) // Create client IntentsClient intentsClient = await IntentsClient.CreateAsync(); // Initialize request argument(s) CreateIntentRequest request = new CreateIntentRequest { ParentAsProjectAgentName = new ProjectAgentName("[PROJECT]"), Intent = new Intent(), }; // Make the request Intent response = await intentsClient.CreateIntentAsync(request); // End snippet }
/// <summary>Snippet for GetIntentAsync</summary> public async Task GetIntentRequestObjectAsync() { // Snippet: GetIntentAsync(GetIntentRequest, CallSettings) // Additional: GetIntentAsync(GetIntentRequest, CancellationToken) // Create client IntentsClient intentsClient = await IntentsClient.CreateAsync(); // Initialize request argument(s) GetIntentRequest request = new GetIntentRequest { IntentName = IntentName.FromProjectLocationAgentIntent("[PROJECT]", "[LOCATION]", "[AGENT]", "[INTENT]"), LanguageCode = "", }; // Make the request Intent response = await intentsClient.GetIntentAsync(request); // End snippet }
/// <summary>Snippet for ListIntents</summary> public void ListIntentsResourceNames() { // Snippet: ListIntents(AgentName, string, int?, CallSettings) // Create client IntentsClient intentsClient = IntentsClient.Create(); // Initialize request argument(s) AgentName parent = AgentName.FromProjectLocationAgent("[PROJECT]", "[LOCATION]", "[AGENT]"); // Make the request PagedEnumerable <ListIntentsResponse, Intent> response = intentsClient.ListIntents(parent); // Iterate over all response items, lazily performing RPCs as required foreach (Intent item in response) { // Do something with each item Console.WriteLine(item); } // Or iterate over pages (of server-defined size), performing one RPC per page foreach (ListIntentsResponse page in response.AsRawResponses()) { // Do something with each page of items Console.WriteLine("A page of results:"); foreach (Intent item in page) { // Do something with each item Console.WriteLine(item); } } // Or retrieve a single page of known size (unless it's the final page), performing as many RPCs as required int pageSize = 10; Page <Intent> singlePage = response.ReadPage(pageSize); // Do something with the page of items Console.WriteLine($"A page of {pageSize} results (unless it's the final page):"); foreach (Intent item in singlePage) { // Do something with each item Console.WriteLine(item); } // Store the pageToken, for when the next page is required. string nextPageToken = singlePage.NextPageToken; // End snippet }
/// <summary>Snippet for BatchUpdateIntentsAsync</summary> public async Task BatchUpdateIntentsAsync_RequestObject() { // Snippet: BatchUpdateIntentsAsync(BatchUpdateIntentsRequest,CallSettings) // Create client IntentsClient intentsClient = await IntentsClient.CreateAsync(); // Initialize request argument(s) BatchUpdateIntentsRequest request = new BatchUpdateIntentsRequest { ParentAsProjectAgentName = new ProjectAgentName("[PROJECT]"), LanguageCode = "", }; // Make the request Operation <BatchUpdateIntentsResponse, Struct> response = await intentsClient.BatchUpdateIntentsAsync(request); // Poll until the returned long-running operation is complete Operation <BatchUpdateIntentsResponse, Struct> completedResponse = await response.PollUntilCompletedAsync(); // Retrieve the operation result BatchUpdateIntentsResponse result = completedResponse.Result; // Or get the name of the operation string operationName = response.Name; // This name can be stored, then the long-running operation retrieved later by name Operation <BatchUpdateIntentsResponse, Struct> retrievedResponse = await intentsClient.PollOnceBatchUpdateIntentsAsync(operationName); // Check if the retrieved long-running operation has completed if (retrievedResponse.IsCompleted) { // If it has completed, then access the result BatchUpdateIntentsResponse retrievedResult = retrievedResponse.Result; } // End snippet }
public async Task CreateAsync() { try { IEnumerable <Model.Intent> intentList = (await _intentService.GetIntentsAsync()).GetMappedResponse <IEnumerable <Model.Intent>, IEnumerable <Model.Intent> >(_mapper); if (intentList.Any()) { IntentsClient client = IntentsClient.Create(); foreach (Model.Intent intentResponse in intentList) { Intent intent = new Intent(); intent.DefaultResponsePlatforms.Add(Platform.ActionsOnGoogle); intent.DisplayName = intentResponse.DisplayName; intent.Messages.Add(AddIntentDefault(intentResponse.Text)); intent.Messages.Add(AddCustomPayload(intentResponse.AllocatedTime)); if (intentResponse.ParentIntentId != null) { intent.ParentFollowupIntentName = intentList.Where(x => x.Id == intentResponse.ParentIntentId).FirstOrDefault().DialogflowGeneratedName; } if (intentResponse.InputContext != null) { foreach (string inputContext in intentResponse.InputContext.Split(',')) { intent.InputContextNames.Add(AddIntentInputContext(inputContext)); } } if (intentResponse.OutputContext != null) { foreach (string outputContext in intentResponse.OutputContext.Split(',')) { intent.OutputContexts.Add(AddIntentOutputContext(outputContext)); } } if (intentResponse.IntentTrainingPhrase.Any()) { foreach (Model.IntentTrainingPhrase trainingPhrase in intentResponse.IntentTrainingPhrase) { intent.TrainingPhrases.Add(AddIntentTrainingPhrase(trainingPhrase)); } } if (intentResponse.IntentParameter.Any()) { foreach (Model.IntentParameter parameter in intentResponse.IntentParameter) { intent.Parameters.Add(AddIntentParameter(parameter)); } } if (intentResponse.IntentSuggestion.Any()) { intent.Messages.Add(AddIntentSuggestion(intentResponse.IntentSuggestion.Select(x => x.Title).ToList())); } intent = client.CreateIntent(parent: new ProjectAgentName("ht-interview-chatbot"), intent: intent); intentResponse.DialogflowGeneratedIntentId = intent.IntentName.IntentId; intentResponse.DialogflowGeneratedName = intent.Name; intentResponse.DialogflowGeneratedIntent = JsonConvert.SerializeObject(intent); await _intentService.UpdateIntentsAsync(_mapper.Map <Model.Intent>(intentResponse)); } } } catch (Exception ex) { string message = ex.Message; } }
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); }
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 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); }
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); }