Я реализую модель диалога Alexa с конечной точкой PHP. Я использовал Alexa Doc (https://developer.amazon.com/fr/docs/custom-skills/dialog-interface-reference.html)
Вот мой пример: Мой навык:
RequestIntent Высказывание: добавьте {obj} в спальне Слоты: {obj} / Заполнение слотов
RequestIntent
Высказывание: добавьте {obj} в спальне
Слоты: {obj} / Заполнение слотов
Фраза:
Я: Алекса, Добавить объект в спальню Алекса: Какой объект вы хотите добавить в спальню? Я: Я хотел бы добавить машины в спальне Алекса: Вы хотите добавить машину в спальню? Я: Да
Я: Алекса, Добавить объект в спальню
Алекса: Какой объект вы хотите добавить в спальню?
Я: Я хотел бы добавить машины в спальне
Алекса: Вы хотите добавить машину в спальню?
Я: Да
STEP1:
НАЧАТЬ DialogState Я использую ElicitSlot для установки слота {obj}
НАЧАТЬ DialogState
Я использую ElicitSlot для установки слота {obj}
STEP2:
dialogState - IN_PROGRESS. Я использую ConfirmIntent, чтобы попросить пользователя подтвердить его
dialogState - IN_PROGRESS.
Я использую ConfirmIntent, чтобы попросить пользователя подтвердить его
STEP3:
Пользователь говорит да / нет Для ConfirmIntent теперь установлено значение ПОДТВЕРЖДЕНО / ОТКАЗАНО НО все еще в IN_PROGRESS
Пользователь говорит да / нет
Для ConfirmIntent теперь установлено значение ПОДТВЕРЖДЕНО / ОТКАЗАНО
НО все еще в IN_PROGRESS
dialogState должен быть ЗАВЕРШЕН, потому что я установил все свои слоты и значение намерения правильно? Так почему бы не работать здесь?
Заранее спасибо
Причина, по которой вы dialogState не COMPLETE, потому что вы используете директиву Dialog.ElicitSlot. Статус COMPLETED возможен только при использовании директивы Dialog.Delegate.
dialogState
COMPLETE
Dialog.ElicitSlot
COMPLETED
Dialog.Delegate
Дополнительная информация по управлению диалогом с помощью директивы Dialog.Delegate здесь
Для меня я должен включить опцию Автоматическое делегирование в Интерфейсы из консоли разработчика Alexa.
Пусть Alexa автоматически определит и завершит каждый шаг диалога на основе вашей диалоговой модели. Ваш навык получает один IntentRequest, когда диалог завершен. Вы можете переопределить этот параметр на уровне намерений. Подробнее об автоматическом делегировании.
Как только все шаги завершены, умение получает финальный IntentRequest с dialogState, установленным на COMPLETED.
IntentRequest
DialogState имеет только следующий статус: "STARTED", "IN_PROGRESS", "COMPLETED.
Причиной, по которой не завершено, может быть то, что не все шаги выполнены, или IntentRequest имеет не все требуемые значения слотов.