DialogFlow: буквенно-цифровой параметр (фиксированной длины) в намерениях и типе @sys.any

avatar
Abdullah
8 марта 2018 в 12:43
1991
2
5

У меня есть намерение в DialogFlow, которое принимает ввод/параметр от пользователя для проверки. Параметр имеет фиксированную длину и является буквенно-цифровым (например, ABC1234). Это случайный идентификатор, разный для разных пользователей. Ввод данных проверяется на сервере с помощью вызова веб-перехватчика.

Чтобы входное значение было принято, я должен установить тип параметра как @sys.any. Это работает, и значение передается в веб-перехватчик для проверки. Но так как это намерение не имеет «контекстов ввода», следующие намерения никогда не запускаются, поскольку каждый ввод пользователя оценивается как @sys.any.

Мне нужен тип, который принимает пользовательское значение. Но я не могу найти.

Вот скриншот для намерения: Verify pin intent

Также обратите внимание, что следующее намерение, которое не срабатывает, имеет "В контексте" = authentication И пользователь произносит такие выражения, как book me. Из-за @sys.any в указанном выше намерении book me приводит к срабатыванию вышеуказанного намерения.

У этого вопроса похожие требования, но нет ответов: DialogFlow — улучшение распознавания объектов/параметров для буквенно-цифровых параметров

Также: https://discuss.api.ai/t/alphanumeric-support/2572

Источник

Ответы (2)

avatar
Abdullah
13 марта 2018 в 05:14
1

Итак, после некоторых раскопок мне пришлось изменить подход. То есть @sys.any — это не выход. Вместо буквенно-цифрового я решил использовать числовую часть входного параметра (последние четыре цифры) и обработал любое дублирование на стороне сервера/вебхуке. Вместо этого я использовал тип @sys.number-sequence.

.

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

avatar
Nazeem
8 марта 2018 в 17:25
0

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

Abdullah
9 марта 2018 в 04:37
0

Я уже сделал это, но как мне перестать вызывать только это намерение (из-за @sys.any) при каждом вводе пользователя?