Я хочу установить значения сущности на основе условия.Как это сделать в диалоге? - PullRequest
0 голосов
/ 10 декабря 2018

Я делаю бота для бронирования номеров.Для бронирования номеров пользователь может выбрать «Премиум-сервис» или «Стандартный сервис».

Однако доступные для бронирования отели зависят от «Премиум» или «Стандарт».

Как это сделать в диалоговом потоке?

Я попытался установить сущности "Service_type" и "Hotels".Однако, как установить значения для сущности "Hotels" на основе "Service_type", который выбрал пользователь?

Обратите внимание, что целью бота является бронирование номеров.И есть много других шагов, которые необходимо выполнить, чтобы завершить его.

Ответы [ 2 ]

0 голосов
/ 15 декабря 2018

Вы можете создать пустую Hotels сущность, а затем заполнить ее соответствующими значениями сущности для этой сессии в своем веб-крюке выполнения.

Если вы используете node.js для своего webhook, вы можете заглянуть в библиотеку Dialogflow , чтобы выполнить большую часть этой работы.Вызов может выглядеть примерно так:

  const sessionEntityTypeRequest = {
    parent: sessionPath,
    sessionEntityType: {
      name: sessionEntityTypePath,
      entityOverrideMode: entityOverrideMode,
      entities: entities,
    },
  };

  const [response] = await sessionEntityTypesClient.createSessionEntityType(
    sessionEntityTypeRequest
  );

(см. Более полный пример в https://github.com/googleapis/nodejs-dialogflow/blob/master/samples/resource.js в функции createSessionEntityType())

0 голосов
/ 11 декабря 2018

Вы можете начать с создания объекта, подобного quality, и полезно подумать о других способах, которыми пользователь может ссылаться на качество, которое вы определяете как «стандартное» и «премиум»

enter image description here

Теперь, когда вы создаете свои намерения, вы должны видеть, что Dialogflow автоматически обнаруживает вашу сущность в учебных фразах

enter image description here

Если Dialogflow еще не обнаруживает вашу сущность, вы можете выделить слово в обучающей фразе и связать его с выбранным вами типом

enter image description here

Это самая простая часть.

Чтобы представить различный набор отелей в зависимости от выбранного стандарта, вам следует изучить разработку конечной точки выполнения , которая обрабатывает логику.

Выбор качества, который пользователь сделал в первом вопросе, будет передан в качестве параметра, и вы можете легко сделать условную логику для выбора отелей в зависимости от этого

conv.ask(`Here is a list of ${quality} hotel options for you`);
if (quality === "premium") {
    conv.ask(getPremiumHotelOptions()); // Carousel or list
} else {
    conv.ask(getStandardHotelOptions()); // Carousel or list
}
...