Вы можете установить параметры программно в своем веб-крюке выполнения, установив необходимый контекст и их параметры. Обратите внимание, что это не предполагаемое использование заполнения слотов.
Dialogflow по умолчанию создает 3 выходных контекста при заполнении параметров
<intentId>_id_dialog_context
<intentname>_dialog_context
<intentname>_dialog_params_<parameterName>
Вы можете найти эти контексты, используя Webhookclient.contexts
Обратите внимание, что контекст, содержащий имя_параметра, будет меняться в зависимости от того, какой параметр запрашивается Dialogflow.
Например, если вы заполните параметр a1, диалоговое окно запросит a2. Контекст будет <intentname>_dialog_params_a2
Все эти контексты содержат параметры, необходимые для намерения.
Вы можете программно установить эти параметры, используя этот подход:
- Пользователь заполняет a1
- В вашем веб-крюке определите, следует ли задать или пропустить a2
- если нужно спросить, ничего не делать или отправить в другом приглашении, используя
webhookClient.add(responses)
если пропустить:
- установить оба
_dialog_context
контекстов, используя
webhookClient.setContext(context)
- при их настройке отправьте параметр a2 как нечто, отличное от
null
- удалить контекст _params_a2
- установить контекст _params_a3 с теми же параметрами
Возможно, ваши параметры теперь выглядят примерно так:
{a1 : 'someUserValue', a2 : 'someValueByWebhook', a3 : ''}
В этом диалоге уже есть значение для a2, и он не будет запрашивать его снова