Я бы рекомендовал не использовать встроенное заполнение слотов 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)
Таким образом, пользователь знает, как реагировать, и вы заметите, что у вас будет менее ожидаемое поведение.
Всегда старайтесь руководитьпользователь в нужном вам направлении.
Надеюсь, это поможет!