После того, как я сам выполнил несколько тестов, оказалось, что тестовый бот Lex настроен на обнаружение типа входящего сообщения и изменение ответа, чтобы доставить тип ответного сообщения для соответствия.
Обратите внимание, что подробная информация панели об ответе от аудиовхода скрывает только полные детали ответа, но не пропускает их.
На самом деле, показанные детали ответа аудио входа даже не в правильном формате Lex Response.
slot-to-elicit ----should be----> slotToElicit
input-transcript ----should be----> inputTranscript
session-attributes ----should be----> sessionAttributes
Это достаточное доказательство для меня, чтобы сделать вывод, что тестовый бот Lex предназначен для изменения формата Lex Response, чтобы доставить сообщение в качестве аудиовыхода только при получении аудиовхода.
Чтобы ответить на ваш вопрос напрямую:
Откуда Лекс знает, как говорить ответ?
Это не Лекс, это тестовый бот. И он определяет тип ввода.
Но не указано 'messageFormat'?
Я могу подтвердить, что - это , указанное в ответе Lex и доставленное в тестовый бот Lex. Таким образом, тестовый бот должен обрабатывать Lex Response по-своему.
Дополнительный вопрос: Если ответ тот же, то чем отличается панель сведений об ответе?
Представьте, что если бы он показал реальный ответ, который он получил, или изменения в тест-боте, то это могло бы ввести в заблуждение разработчиков. Таким образом, для аудиовыходных сообщений он показывает свою собственную форму деталей на панели деталей ответа.