В моем намерении есть несколько слотов. Можно ли заставить lex вызывать определенный слот с помощью вызова POSTTEXT aws sdk и не беспокоиться о приоритете слотов?

Примере:

  1. заказ пиццы - намерение
  2. начинки - слот
  3. пицца - слот
  4. cheesequanity - слот
  5. pizzaquantity - слот

Когда я отправляю "25" в lex, я хочу, чтобы оно соответствовало количеству пиццы, а не количеству сыра.

1
rakeshshukla 24 Ноя 2018 в 19:29

1 ответ

Лучший ответ

Выявление определенного слота должно происходить после того, как Lex обработает ввод и отправит событие / запрос в вашу лямбда-функцию во время перехвата кода «инициализация и проверка».

Без лямбда-функции Lex будет только Delegate, какие слоты вызывать, в зависимости от того, какие из них проверяются по мере необходимости.

Итак, чтобы иметь больше контроля, вам понадобится лямбда-функция. Вы захотите прочитать Событие ввода лямбда-функции и форматы ответов. Это показывает вам, как Лекс будет передавать обработанный пользовательский ввод в вашу лямбда-функцию и как реагировать определенным образом, чтобы вы могли сказать Лексу, что делать дальше, например ElicitSlot

Чтобы было ясно, это не делается с API PostText.

Если вы уже используете лямбда-функцию, вы можете опубликовать код, который используете, но хотите, чтобы он вызывал определенный слот, тогда я мог бы предложить более конкретное решение. Если вы еще не используете лямбда-функцию, попробуйте настроить ее, и вы сможете сами увидеть, как использовать elicitSlot.

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

0
Jay A. Little 25 Ноя 2018 в 13:37