В настоящее время я пытаюсь отправить несколько сообщений из AWS Lambda в Lex в Python 3.6, но Лекс считает мои ответы неверными.
Я получил несколько ошибок, таких как:
- Получен неверный ответ от Lambda: невозможно создать экземпляр сообщения, проблема: contentType не должен быть нулевым
- «content» не может быть пустым
- Синтаксическая ошибка в модуле «lambda_function»: неожиданный символ послесимвол продолжения строки [после попытки избежать моего JSON]
- Получен неверный ответ от Lambda: Невозможно десериализовать экземпляр java.lang.String из токена START_OBJECT в ...
В общем, я делаю это так:
messages = [
{
'contentType': 'PlainText',
'group': 0,
'value': 'Applying this criteria, you have %d result(s) left.' % len(json.loads(session_attributes['results']))
},
{
'contentType': 'PlainText',
'group': 1,
'value': 'What do you want to do next ?'
}
]
format_message('PlainText', messages)
с format_message, который ВРЕМЕННО выглядит следующим образом (потому что я пробовал МНОГИЕ вещи, чтобы это работало ... без какого-либо успеха) - но этоодин тоже не работает:
def format_message(message_type, content):
return {'messages': content}
В конце концов, он дает этот формат ответа (с другими предварительными условиями lex, такими как слоты и т. д., но я выигралне отображать их здесь, потому что я не думаю, что это уместно):
{'message': {'messages': [{'group': 0, 'contentType': 'PlainText', 'value': 'Applying this criteria, you have 1 result(s) left.'}, {'group': 1, 'contentType': 'PlainText', 'value': 'What do you want to do next ?'}]
Я попытался преобразовать массив 'messages' в строку, отправить его в виде JSON и т. д.Но, похоже, ничего не работает.
Я прочитал всю документацию, перечисленную в этом выпуске ...
Кто-нибудь уже нашел решение, пожалуйста?
Спасибо,