我正在使用Dialogflow nodejs SDK(V2)在我的nodjs应用程序中集成Dialogflow,因为我正在使用dialogflow npm节点库。我可以创建Intent并获取Intent列表,也可以查询。但是我找不到任何方法来更新现有的Intent并根据Intent ID获取Intent详细信息。
您能帮我还是指导我如何解决此问题?
谢谢。
答案 0 :(得分:2)
要更新意图,首先,您需要获取意图详细信息。如果您具有意图名称或ID,则只需请求列出意图API并找到具有匹配意图名称的意图详细信息即可。
一旦您有想要更新的意图详细信息(此处称为existingIntent
),就可以使用以下代码对其进行更新。
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;
}