1

現在、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 などとして送信しようとしましたが、何も機能していないようです。

この号に記載されているドキュメントをすべて読みました...

誰かがすでに解決策を見つけましたか?

ありがとうございました、

4

1 に答える 1