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

如何获取对话状态中正在填充的槽位并实现槽位多选提示?

关于Alexa技能槽位填充的两个问题解答

嘿,我来帮你搞定这两个Alexa技能开发里的常见问题!

一、如何获取当前正在填充的具体槽位?

当this.event.request.dialogState返回IN_PROGRESS时,Alexa的请求对象里已经直接给出了当前需要填充的槽位——你可以通过this.event.request.dialogAction.slotToElicit字段拿到这个槽位的名称(比如你的例子里的age)。

举个简单的代码示例:

// 检查对话是否处于填充过程中
if (this.event.request.dialogState === 'IN_PROGRESS') {
  const currentSlotName = this.event.request.dialogAction.slotToElicit;
  console.log(`当前正在填充的槽位:${currentSlotName}`);
  // 这里可以根据槽位名称做不同的逻辑处理
}

如果使用的是ASK SDK v2/v3(更推荐的新版本),写法会稍有不同,你需要从handlerInput.requestEnvelope里获取:

const dialogState = handlerInput.requestEnvelope.request.dialogState;
if (dialogState === 'IN_PROGRESS') {
  const currentSlotName = handlerInput.requestEnvelope.request.dialogAction.slotToElicit;
  // 后续逻辑...
}

二、填充age槽位时,如何提供选项提示?

你有两种方式实现这个需求,一种是在开发者控制台配置静态提示,另一种是在代码里动态生成提示(更灵活):

方式1:控制台静态配置

  1. 打开Alexa开发者控制台,进入你的技能的「对话模型」页面
  2. 找到age槽位,在「提示」(Prompts)区域添加类似这样的文本:

    请问你的年龄是多少呢?可以选择18以下、20-50或者50以上哦

  3. 保存并构建模型,之后当Alexa需要填充age槽位时,就会自动播放这个提示

方式2:代码动态生成提示

如果需要根据上下文调整提示内容,或者做更复杂的逻辑,推荐用代码实现。比如当检测到当前要填充age槽位时,返回带选项的引导指令:

if (this.event.request.dialogState === 'IN_PROGRESS' && 
    this.event.request.dialogAction.slotToElicit === 'age') {
  // 构建带选项的语音提示
  const prompt = '请问你的年龄是多少呢?你可以选择18以下、20到50之间,或者50以上哦';
  // 返回引导用户填充age槽位的响应
  return this.response.speak(prompt)
    .listen('请告诉我你的年龄范围哦')
    .addElicitSlotDirective('age', this.event.request.intent)
    .getResponse();
}

如果是ASK SDK v2/v3版本:

const { responseBuilder } = handlerInput;
const currentSlotName = handlerInput.requestEnvelope.request.dialogAction.slotToElicit;

if (currentSlotName === 'age') {
  return responseBuilder
    .speak('请问你的年龄是多少呢?你可以选择18以下、20到50之间,或者50以上哦')
    .reprompt('请告诉我你的年龄范围哦')
    .addElicitSlotDirective('age')
    .getResponse();
}

另外,如果希望用户只能选择你指定的这几个选项,建议把age槽位设置为自定义槽位,并将这三个选项(比如under_18、20_to_50、over_50)添加为槽位值,这样Alexa能更准确地识别用户的回答。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 06:53:11