You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

AWS Lex v2中如何引用子槽用于对话或条件判断?

AWS Lex v2复合子槽引用解决方案

1. 引用firstName子槽输出个性化感谢语

在Lex的响应模板中,直接使用{fullName.firstName}语法嵌入子槽值,示例响应文本:

谢谢,{fullName.firstName}

只要fullName复合槽已成功收集到firstName的值,就能自动替换为对应内容(如“谢谢,John”)。

2. 根据year子槽做条件判断(区分新旧车辆)

Lex v2的响应模板不支持直接条件分支,需通过**对话代码钩子(Lambda函数)**实现逻辑判断:

  1. 从会话状态中提取车辆year子槽值
  2. 基于年份阈值执行不同处理逻辑

示例Python Lambda代码:

def lambda_handler(event, context):
    # 提取复合槽中的year子槽值
    vehicle_slot = event['sessionState']['intent']['slots'].get('车辆信息')
    if vehicle_slot and vehicle_slot['value']['interpretedValue'].get('year'):
        vehicle_year = vehicle_slot['value']['interpretedValue']['year']
        
        # 自定义新旧车分界年份(示例为2020年)
        if int(vehicle_year) >= 2020:
            response_content = "您的新车将享受优先检测服务"
        else:
            response_content = "我们会为您的旧车做全面的部件检查"
    else:
        response_content = "请提供您的车辆年份信息"
    
    # 返回处理后的响应
    return {
        "sessionState": {
            "dialogAction": {"type": "Close"},
            "intent": event['sessionState']['intent']
        },
        "messages": [{"contentType": "PlainText", "content": response_content}]
    }

3. 引用model子槽输出车辆关怀语

同样在响应模板中使用{车辆信息.model}语法,示例响应文本:

我们会悉心照料您的{车辆信息.model}

该语法会自动替换为收集到的model值(如“我们会悉心照料您的Camry”)。

注意事项

  • 子槽名称区分大小写,需与复合槽定义的名称完全一致
  • Lambda中提取子槽时,需遵循Lex v2的会话状态结构:event['sessionState']['intent']['slots']['复合槽名']['value']['interpretedValue']['子槽名']
  • 响应模板中无需添加$符号,直接使用{复合槽名.子槽名}即可引用子槽值

内容的提问来源于stack exchange,提问作者Travis Don Kindred

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.21 20:24:57