Reputation: 392
I am using Dialogflow nodejs SDK(V2) to Integrate Dialogflow in my nodjs application for that I am using dialogflow npm node library. I'm able to create the Intent and get the list of Intents and I'm able to query as well. But I can't find any method for updating the existing Intent and getting Intent details based on the Intent ID.
can you please help me or guide me how to resolve this issue?
Thanks.
Upvotes: 3
Views: 1871
Reputation: 481
To update an intent, first, you need to get the intent details. If you have the intent name or ID, then you can simply make a request to list intent API and find the intent details with matching intent name.
Once you have the intent details you wish to update( here referred as existingIntent
), you can use the below code to update it.
async function updateIntent(newTrainingPhrases) {
// Imports the Dialogflow library
const dialogflow = require("dialogflow");
// Instantiates clients
const intentsClient = new dialogflow.IntentsClient();
const intent = existingIntent; //intent that needs to be updated
const trainingPhrases = [];
let previousTrainingPhrases =
existingIntent.trainingPhrases.length > 0
? existingIntent.trainingPhrases
: [];
previousTrainingPhrases.forEach(textdata => {
newTrainingPhrases.push(textdata.parts[0].text);
});
newTrainingPhrases.forEach(phrase => {
const part = {
text: phrase
};
// Here we create a new training phrase for each provided part.
const trainingPhrase = {
type: "EXAMPLE",
parts: [part]
};
trainingPhrases.push(trainingPhrase);
});
intent.trainingPhrases = trainingPhrases;
const updateIntentRequest = {
intent,
languageCode: "en-US"
};
// Send the request for update the intent.
const result = await intentsClient.updateIntent(updateIntentRequest);
return result;
}
Upvotes: 4