現在、Python 3.6 で AWS Lambda から Lex に複数のメッセージを送信しようとしていますが、Lex は私の回答が正しくないと見なします。
次のような複数のエラーが発生しました。
- Lambda から無効な応答を受け取りました: メッセージのインスタンスを構築できません。問題: contentType を null にすることはできません
- 「コンテンツ」は空白にできません
- モジュール 'lambda_function' の構文エラー: 行継続文字の後の予期しない文字 [JSON をエスケープしようとした後]
- Lambda から無効な応答を受け取りました: START_OBJECT トークンから java.lang.String のインスタンスを逆シリアル化できません...
基本的に、私はこれを次のようにやっています:
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 ?'}]
「メッセージ」配列を文字列に変換したり、JSON などとして送信しようとしましたが、何も機能していないようです。
この号に記載されているドキュメントをすべて読みました...
誰かがすでに解決策を見つけましたか?
ありがとうございました、