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

使用Python AWS SDK创建Lex Bot:如何为意图槽位添加优先级?

解决AWS Lex Bot槽位优先级未定义的问题

当使用AWS Lex V2时,意图中的所有槽位必须定义优先级,用于指定Lex收集槽位信息的顺序。你可以通过AWS SDK for Python(boto3)的lexv2-models客户端,在创建或更新意图时添加slotPriorities字段来解决这个错误。

具体实现步骤

  1. 初始化Lex V2 Models客户端
import boto3

# 初始化Lex V2模型客户端
lex_client = boto3.client('lexv2-models')
  1. 更新意图并设置槽位优先级
    使用update_intent方法,为每个报错的槽位分配优先级数值(数值越小,优先级越高):
response = lex_client.update_intent(
    botId="你的Bot ID",
    botVersion="DRAFT",  # 仅能更新草稿版本的Bot
    localeId="zh_CN",  # 替换为你的Bot使用的语言区域,比如en_US
    intentId="你的意图ID",
    intentName="你的意图名称",
    slotPriorities=[
        {"slotName": "Answer", "priority": 1},    # 最高优先级
        {"slotName": "Number", "priority": 2},
        {"slotName": "NumberTwo", "priority": 3}   # 最低优先级
    ],
    # 注意:需要保留意图原有配置(如示例语句、槽位定义等),避免被重置
    sampleUtterances=[
        {"utterance": "提交答案{Answer}和数字{Number}"},
        {"utterance": "我的数字是{NumberTwo},答案是{Answer}"}
    ]
)

关键注意事项

  • 仅能更新草稿版本的Bot,已发布的版本无法修改。更新完成后,你需要重新发布Bot才能生效。
  • 优先级数值为整数,建议为每个槽位分配唯一值,避免Lex处理顺序出现歧义。
  • 如果是创建新意图,直接在create_intent方法中添加slotPriorities字段即可,格式与上述一致。
  • 更新意图时,必须传入所有必填参数(如sampleUtterances),否则原有配置会被重置为默认值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 23:55:26