Amazon web services 在AWS-Lex-QnA中使用lambda钩子

Amazon web services 在AWS-Lex-QnA中使用lambda钩子,amazon-web-services,aws-lambda,chatbot,amazon-lex,Amazon Web Services,Aws Lambda,Chatbot,Amazon Lex,我正在从Lex构建一个QnA机器人,其中,对于某些问题,将使用lambda钩子,然后根据发布的问题给出响应。 根据lambda钩子指令,“lambda处理程序必须返回修改过的事件对象。”正如您从event.res(这是需要操作的)中所看到的,没有dialogaction。我试过把它插进去,但没用。我看到有一个卡片对象,我试着操纵它,但也不起作用。我们将非常感谢您的帮助 我无法使卡显示在客户端中。以下是event.res: { type: 'PlainText', message: '[

我正在从Lex构建一个QnA机器人,其中,对于某些问题,将使用lambda钩子,然后根据发布的问题给出响应。 根据lambda钩子指令,“lambda处理程序必须返回修改过的事件对象。”正如您从event.res(这是需要操作的)中所看到的,没有dialogaction。我试过把它插进去,但没用。我看到有一个卡片对象,我试着操纵它,但也不起作用。我们将非常感谢您的帮助

我无法使卡显示在客户端中。以下是event.res:

{
  type: 'PlainText',
  message: '[User Input: "best offer", Source: ElasticSearch] These are some of our most popular offers:',
  session: {
    qnabot_qid: 'TelcoBot.005',
    qnabot_gotanswer: true,
    qnabotcontext: { previous: [Object], navigation: [Object] },
    appContext: { altMessages: {} }
  },
  card: { send: false, title: '', text: '', url: '' },
  _userInfo: {
    InteractionCount: 2,
    UserId: 'eu-west-1:bdd6c35c-8f6f-4b83-90bc-b8b9ae3a9605',
    FirstSeen: 'Wed Oct 07 2020 04:38:23 GMT+0000 (Coordinated Universal Time)',
    LastSeen: 'Wed Oct 07 2020 04:45:08 GMT+0000 (Coordinated Universal Time)',
    TimeSinceLastInteraction: 405.067,
    isVerifiedIdentity: 'false'
  },
  got_hits: 1,
  result: {
    qid: 'TelcoBot.005',
    quniqueterms: ' What are your best offers? Best Offers Popular offers tell me your best offers help me with best offers  ',
    questions: [ [Object], [Object], [Object], [Object], [Object] ],
    a: '[User Input: "best offer", Source: ElasticSearch] These are some of our most popular offers:',
    l: 'arn:aws:lambda:eu-west-1:418746351551:function:qna-telco-bestoffer-lambda',
    args: [ 'BestOffer' ],
    type: 'qna',
    answersource: 'ElasticSearch',
    autotranslate: { a: true },
    lambdahooks: [ [Object], [Object] ]
  },
  plainMessage: '[User Input: "best offer", Source: ElasticSearch] These are some of our most popular offers:',
  answerSource: 'ELASTICSEARCH'
}
2020-10-07T04:45:08.502Z 
以下是运行lambda后的event.res,它清楚地表明它正在工作…:

{
    "type": "PlainText",
    "message": "Revised biznatches",
    "session": {
        "qnabotcontext": {
            "previous": {
                "qid": "TelcoBot.005",
                "a": "[User Input: \"best offer\", Source: ElasticSearch] These are some of our most popular offers:",
                "alt": {},
                "q": "best offer"
            },
            "navigation": {
                "next": "",
                "previous": [],
                "hasParent": true
            }
        },
        "appContext": {
            "altMessages": {}
        },
        "qnabot_qid": "TelcoBot.005",
        "qnabot_gotanswer": true
    },
    "card": {
        "send": true,
        "version": 1,
        "contentType": "application/vnd.amazonaws.card.generic",
        "genericAttachments": [
            {
                "title": "card-title",
                "subTitle": "card-sub-title",
                "imageUrl": "https://en.wikipedia.org/wiki/Image#/media/File:Image_created_with_a_mobile_phone.png",
                "attachmentLinkUrl": "https://en.wikipedia.org/wiki/Image#/media/File:Image_created_with_a_mobile_phone.png",
                "buttons": [
                    {
                        "text": "button-text",
                        "value": "Value sent to server on button click"
                    }
                ]
            }
        ]
    },
    "_userInfo": {
        "UserId": "eu-west-1:bdd6c35c-8f6f-4b83-90bc-b8b9ae3a9605",
        "InteractionCount": 1,
        "isVerifiedIdentity": "false",
        "TimeSinceLastInteraction": 1602002303.774,
        "FirstSeen": "Wed Oct 07 2020 04:38:23 GMT+0000 (Coordinated Universal Time)",
        "LastSeen": "Wed Oct 07 2020 04:38:23 GMT+0000 (Coordinated Universal Time)"
    },
    "got_hits": 1,
    "result": {
        "qid": "TelcoBot.005",
        "quniqueterms": " What are your best offers? Best Offers Popular offers tell me your best offers help me with best offers  ",
        "questions": [
            {
                "q": "What are your best offers?"
            },
            {
                "q": "Best Offers"
            },
            {
                "q": "Popular offers"
            },
            {
                "q": "tell me your best offers"
            },
            {
                "q": "help me with best offers"
            }
        ],
        "a": "[User Input: \"best offer\", Source: ElasticSearch] These are some of our most popular offers:",
        "l": "arn:aws:lambda:eu-west-1:418746351551:function:qna-telco-bestoffer-lambda",
        "args": [
            "BestOffer"
        ],
        "type": "qna",
        "answersource": "ElasticSearch",
        "autotranslate": {
            "a": true
        },
        "lambdahooks": [
            {
                "args": []
            },
            {
                "l": "arn:aws:lambda:eu-west-1:418746351551:function:qna-telco-bestoffer-lambda",
                "args": [
                    "BestOffer"
                ]
            }
        ]
    },
    "plainMessage": "[User Input: \"best offer\", Source: ElasticSearch] These are some of our most popular offers:",
    "answerSource": "ELASTICSEARCH"
}

下面是函数:

exports.handler = (event, context, callback) => {
    event.res.message = "Revised message";
    event.res.card = {
      "send": true,
      "version": 1,
      "contentType": "application/vnd.amazonaws.card.generic",
      "genericAttachments": [
          {
             "title":"card-title",
             "subTitle":"card-sub-title",
             "imageUrl":"https://en.wikipedia.org/wiki/Image#/media/File:Image_created_with_a_mobile_phone.png",
             "attachmentLinkUrl":"https://en.wikipedia.org/wiki/Image#/media/File:Image_created_with_a_mobile_phone.png",
             "buttons":[ 
                 {
                    "text":"button-text",
                    "value":"Value sent to server on button click"
                 }
              ]
           },
       ] 
     };

  callback(null, event);
};