首页 > 解决方案 > AWS Lex 在第一次触发意图时发送消息气泡

问题描述

我目前有一个有两个意图的 Lex 机器人。我希望机器人在发送第一个槽提示之前发送一条消息。我认为这可以通过在第一次触发意图时发送消息或发送多个提示(如果可能的话)来完成。

例如,用户会说:

我想转专业

机器人会回复 2 条消息:

我基本上只是想把它分成两个不同的消息气泡。我看到这个帖子发送多个响应消息,但我如何发送多个提示消息?

标签: node.jsamazon-web-servicesaws-lambdaamazon-lex

解决方案


如果您使用 lambda 代码挂钩进行初始化和验证,您可以将多条消息作为列表发送,该列表将显示为单独的消息。您想将类型设置为 ElicitSlot。来自 lambda 的 Lex V2 中的响应语法如下所示:

    def lambda_handler(event, context):
        return {'sessionState': {
            'dialogAction': {
                'type': 'ElicitSlot',
                'slotToElicit': 'NAME_OF_YOUR_SLOT'},
        },
            'intent': event['sessionState']['intent'],
            'messages': [{'contentType': 'PlainText',
                          'content': 'PUT FIRST MESSAGE HERE'},
                         {'contentType': 'PlainText',
                          'content': 'PUT SECOND MESSAGE HERE'}],
        }

Lex V1 中会略有不同


推荐阅读