如何通过SMAPI在Alexa Skill中创建类内置槽的自定义槽并跨技能复用
跨技能复用的Alexa自定义槽实现方案(SMAPI操作)
你需要的和内置槽体验接近、支持跨技能复用扩展的自定义槽,可通过SMAPI的共享自定义槽类型功能实现,无需重复开发同类型槽。
1. 创建可共享的基础自定义槽类型
- 调用SMAPI的槽类型创建接口或ASK CLI命令完成基础槽创建,示例CLI命令如下:
ask smapi create-slot-type --slot-type-name "自定义槽名称" --slot-values "通用值1" "通用值2" --vendor-id "你的开发商ID" --stage development - 基础槽配置建议参考官方内置槽规则,开启模糊匹配和同义词映射,即可达到和内置槽接近的识别准确率,无需穷举所有用户可能的表述。
2. 配置槽的跨技能访问权限
- 创建槽时添加
--sharing-configuration private参数,将共享范围设置为同开发商账号下私有,你账号下的所有技能都可直接引用该槽,不会对外公开。如果需要限制仅指定技能可访问,可单独在配置中添加允许的技能ID列表。
3. 其他技能中引用并扩展共享槽
- 在其他技能的交互模型JSON中直接通过槽ARN引用该共享槽,同时可按需补充当前技能专属的槽值,补充内容不会影响原始共享槽的通用配置:
"types": [ { "name": "当前技能内的槽别名", "basedOn": "arn:alexa:ask::vendor/你的开发商ID/slotType/共享槽ID/development", "values": [ // 此处仅需填写当前技能需要额外补充的专属槽值 {"id": "ext_001", "name": {"value": "专属补充值1", "synonyms": ["补充值别名1"]}} ] } ]
- 后续基础共享槽的通用值更新后,所有引用该槽的技能都会自动同步更新,无需逐个修改技能配置。
内容的提问来源于stack exchange,提问作者Ashwani
相关产品推荐
相关产品推荐

