Ответ Lex зависит от того, наберу ли я утверждение или использую аудио - PullRequest
0 голосов
/ 28 июня 2018

Я использую интерфейс чата, как предусмотрено в конструкторе lex. Когда я набираю вопрос, я получаю формат обратно, как в первом примере. И Лекс не говорит мне ответ.

{
  "dialogState": "ElicitSlot",
  "intentName": "OrderFlowers",
  "message": "What type of flowers would you like to order?",
  "messageFormat": "PlainText",
  "responseCard": null,
  "sessionAttributes": {},
  "slotToElicit": "FlowerType",
  "slots": {
    "FlowerType": null,
    "PickupDate": null,
    "PickupTime": null
  }
}

Однако, когда я говорю, lex отвечает голосом. И пример ответа выглядит так:

slot-to-elicit: FlowerType
dialog-state: ElicitSlot
input-transcript: i would like to order some flowers
session-attributes: {}
slots: {
  "PickupTime": null,
  "FlowerType": null,
  "PickupDate": null
}

Откуда lex узнает, что говорит ответ клиенту во втором примере, если не указан формат сообщения? Оба ответа были взяты из подробной панели в конструкторе lex chatbot.

1 Ответ

0 голосов
/ 28 июня 2018

После того, как я сам выполнил несколько тестов, оказалось, что тестовый бот 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 по-своему.

Дополнительный вопрос: Если ответ тот же, то чем отличается панель сведений об ответе?

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

...