Dialogflow восстанавливает контекст после отмены заполнения слотов без всех необходимых параметров / слотов, заполненных пользователем - PullRequest
0 голосов
/ 20 июня 2019

Мы пытаемся создать чат-бота для автосалонов. Когда пользователь запрашивает запросы типа «Я ищу модели ford 2017» и т. Д., У нас есть еще несколько слотов для заполнения, прежде чем мы покажем конечные результаты пользователя. Поэтому, чтобы справиться с этим, мы создали намерение с необходимыми параметрами. Мы также предоставляем несколько пользовательских кнопок пользовательского интерфейса, чтобы помочь пользователю в процессе заполнения слотов. Однако иногда пользователи могут выбрать собственный ввод, а иногда пользователи могут вводить текст, отличный от значения слота.

Например:

  • Пользователь: Я ищу Ford последних моделей 2017 года или позже.
  • Бот: Какую модель вы ищете: Мы показываем некоторые варианты
  • Пользователь: escape
  • Бот: Какой ценовой диапазон вы ищете: Мы показываем некоторые варианты
  • Пользователь: Я ищу то, что будет достаточно для семьи из 4 человек.

Здесь, в этом случае, заполнение слота прерывается, поскольку пользователь не дал ожидаемый слот / параметр. Также было бы неплохо, если бы мы могли как-то отвечать на такие человеческие нюансы и продолжать заполнять слоты.

EDIT: Мы уже включили некоторый механизм во время заполнения слота, чтобы обрабатывать случаи, когда пользователь вводит некоторый ввод, отличный от требуемого значения слота. Но иногда этот механизм не работает, и иногда пользователь может ввести инструкцию, которая вызывает новое намерение.

Как я могу обрабатывать такие случаи с помощью диалогового потока?

1 Ответ

0 голосов
/ 20 июня 2019

Я бы рекомендовал не использовать встроенное заполнение слотов Dialogflow.У меня была эта проблема раньше, и теперь я просто создаю разные намерения для каждой «переменной», которую я хочу получить от пользователя.Вы все еще могли бы использовать заполнение слотов, если позволяете пользователю знать, в каком формате вы ожидаете, что он ответит. Чатбот KLM делает это отлично, вы должны проверить это.

ОБНОВЛЕНИЕ: Вот как вы можете обрабатывать вводдля разных параметров.Всякий раз, когда пользователь что-то отвечает, вы не ожидаете, что «question.invalidInput» будет запущен, и там вы сможете напомнить пользователю, какой формат вы ожидаете.

Intent: question
Trainings phrase: 'May I enter?'
Output context: 'await_olderThan21'
Response: 'Are you older than 21?'

Intent: question.yes
Training phrase: 'yes'
Input context: 'await_olderThan21'
Output context: ''
Response: 'Yes, you may enter'

Intent: question.no
Training phrase: 'no'
Input context: 'await_olderThan21'
Output context: ''
Response: 'No, you may not.'

Intent: question.invalidInput
Training phrase: @sys.any
Input context: 'await_olderThan21'
Output context: 'await_olderThan21'
Response: 'Invalid answer. Please reply with yes or no.'

Например:

User: I am looking for ford latest models 2017 or afterwards.
Bot: Which model are you looking for: We display some options
User: escape
Bot: What is the price range you are looking for: We display some options
User: I looking for something which will suffice for a family of 4.
Bot *fallback*: Please enter the maximum amount you would like to spend on a car (in dollar)

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

Всегда старайтесь руководитьпользователь в нужном вам направлении.

Надеюсь, это поможет!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...