Как обновить существующие намерения в Dialogflow (V2) с помощью nodejs SDK? - PullRequest
0 голосов
/ 26 февраля 2019

Я использую Dialogflow nodejs SDK (V2) для интеграции Dialogflow в моем приложении nodjs, для этого я использую dialogflow библиотека узлов npm.Я могу создать Intent и получить список Intent, а также могу делать запросы.Но я не могу найти какой-либо способ обновления существующего Intent и получения подробных данных Intent на основе Intent ID.

Не могли бы вы мне помочь или помочь мне решить эту проблему?

Спасибо.

1 Ответ

0 голосов
/ 26 февраля 2019

Чтобы обновить намерение, сначала вам нужно получить подробные сведения о намерении.Если у вас есть имя или идентификатор намерения, то вы можете просто сделать запрос на перечисление 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;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...