You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何在AWS Lex(Python Lambda)中实现无需用户输入的初始欢迎消息?

在AWS Lex中实现无需用户输入的欢迎消息指引

刚看到你的需求——在AWS Lex里实现会话启动时自动发欢迎消息和使用指引,不用等用户先输入。这个我熟,分Lex V1和V2两种情况给你说具体操作,都是实际用过的靠谱方法:

Lex V2 原生实现(推荐,更简单)

Lex V2已经原生支持了会话启动时自动发消息的功能,不用额外写代码:

  • 打开你的Lex机器人控制台,进入你正在编辑的Bot版本
  • 左侧菜单找到「Settings」→「General」
  • 在「Initial response」板块,勾选「Send a message to the user when a conversation starts」
  • 输入你的欢迎语和使用指引就行,比如:

    嗨!我是你的专属助手😊 我可以帮你查询订单状态、申请售后,或者解答常见问题。你只需要直接说出你的需求就好啦!

  • 保存并发布机器人,测试的时候用户一打开会话,这条消息就会自动弹出来。

Lex V1 借助Lambda实现(旧版本适配)

Lex V1没有原生的初始消息功能,得靠Lambda来触发:

  1. 先创建一个Lambda函数,核心逻辑是判断当前会话是不是首次启动——可以通过检查sessionAttributes里的自定义标记,或者直接看inputTranscript是否为空
  2. 如果是首次会话,返回包含欢迎消息的响应格式,给你个Python示例代码:
    def lambda_handler(event, context):
        # 检查是否为首次会话
        if 'isFirstSession' not in event.get('sessionAttributes', {}):
            # 返回欢迎消息
            response = {
                "dialogAction": {
                    "type": "Close",
                    "fulfillmentState": "Fulfilled",
                    "message": {
                        "contentType": "PlainText",
                        "content": "欢迎使用我的服务!你可以问我关于账户、订单的问题,或者说'帮助'查看更多功能~"
                    }
                },
                "sessionAttributes": {"isFirstSession": "True"}
            }
            return response
        # 非首次会话,交给Lex处理用户输入
        return event
    
  3. 把这个Lambda函数配置为机器人的「初始化和验证Lambda」(在机器人的Configuration页面设置)
  4. 发布机器人后,首次打开会话就会自动收到欢迎消息了。

小提示

如果需要更灵活的欢迎逻辑(比如根据用户身份发送不同指引),可以在Lambda里扩展判断条件,或者在Lex V2的Initial Response里结合会话属性动态生成消息,适配不同场景。

内容的提问来源于stack exchange,提问作者Akhil Gudimetla

火山引擎 最新活动