Ошибка десериализации в ответе amazon lex - PullRequest
0 голосов
/ 24 сентября 2019

Я подключил Amazon Lex к Amazon Lambda, я протестировал Amazon Lambda, и она работает, как и ожидалось.

Я получаю ответ от Amazon Lambda (протестирован с использованием облачных часов):

 {'sessionAttributes': {}, 'dialogAction': {'type': 'ElicitSlot', 'intentName': 'paymentdue', 'slots': {}, 'slotToElicit': '', 'message': 'This is a test message', 'responseCard': '', 'fulfillmentState': 'Fulfilled'}}

но я получаю приведенную ниже ошибку от amazon lex: в чем здесь может быть проблема?

An error has occurred: Invalid Lambda Response: Received invalid response from Lambda: 
Can not construct instance of Message: no String-argument constructor/factory method to deserialize from String value 
('This is a test message') at [Source: {"sessionAttributes": {}, "dialogAction": {"type": "ElicitSlot", "intentName": "paymentdue", "slots": {}, "slotToElicit": "", "message": "This is a test message", "responseCard": "", "fulfillmentState": "Fulfilled"}}; line: 1, column: 138]

Может кто-нибудь дать мне знать проблему?

Спасибо,
Гарри

1 Ответ

1 голос
/ 24 сентября 2019

Когда тип ответа - ElicitSlot, Лекс ожидает увидеть поле message, например:

"message": {
      "contentType": "PlainText or SSML or CustomPayload",
      "content": "Message to convey to the user. For example, What size pizza would you like?"
    }

Ваш ответ - строка, а не объект.См. здесь для получения дополнительной информации.

...