Первый (+
) - один или несколько символов . Второй (*
) - ноль или более символов . Оба не являются жадными (?
) и соответствуют чему-либо (.
).
Несколько замечаний, которые могут помочь:
Использовать объекты сеансов
Поскольку вы загружаете категории и меню динамически, вы также можете устанавливать объекты для них динамически. Для этого вы будете использовать API Dialogflow для создания Session Entities , которые изменяют Entity, который вы определили. Затем вы можете тренировать свое намерение с помощью фраз, которые используют эту сущность, но вы будете динамически изменять сущность, когда они начнут разговор.
Не используйте дополнительные материалы
Дополнительные материалы полезны в очень ограниченных случаях. Как только вы начинаете создавать цепочку Followup Intents, это обычно является признаком того, что вы пытаетесь заставить разговор идти определенным образом, и тогда вы столкнетесь с проблемами, которые возникают у вас, когда разговор должен принять небольшой оборот. [ 1116]
Вместо этого продолжайте и используйте Intents верхнего уровня для всего, что вы пытаетесь сделать.
«Но,« я слышу, ты спрашиваешь: «Как мне тогда убедиться, что я обработал выбор категории перед выбором меню?»
Ну, сделать это можно ...
Использовать контексты
Вы были на правильном пути, когда сказали, что соответствовали выходному контексту. Вы можете не только сопоставить его с , но и продолжить контролировать , какие контексты устанавливаются в вашем веб-крюке. Таким образом, вы можете использовать входные контексты, чтобы сузить, какое намерение сопоставляется в любом состоянии вашего разговора, но только установить выходной контекст в вашем выполнении веб-крючка, чтобы определить, какие контексты действительны на любом этапе разговора. Вы можете очистить контексты, которые больше не действительны, установив их продолжительность жизни равной 0.
Таким образом, по этой схеме:
Прежде всего, помните ...