无需登录 数据私有 本地保存

Alexa Skill 意图模型验证器 - 检查 JSON 语法

41
0
0
0
0 字符 | 1 行
释放文件以加载
1

常见问题

Alexa Skill 意图模型是定义技能语音交互逻辑的 JSON 配置文件,包含 interactionModel 对象。它定义了用户如何通过语音调用技能(invocationName)、技能支持哪些意图(intents)、每个意图的示例语句(samples/utterances)以及自定义槽位类型(types/slots)。该文件通常在 Alexa Developer Console 中编辑,或通过 ASK CLI 进行管理。

必需的顶层结构为:
interactionModellanguageModelinvocationName(字符串)和 intents(数组)。
每个 intent 必须包含 name(字符串)和 samples(字符串数组,至少一条)。
如果 intent 包含 slots 数组,则每个 slot 必须包含 nametype。自定义类型需在顶层 types 数组中定义。

  • JSON 语法错误:缺少逗号、引号不匹配、尾部逗号等。
  • 缺少 invocationName:未定义技能调用名称。
  • intents 数组为空:至少需要一个意图。
  • samples 为空:每个意图至少需要一个示例语句。
  • Slot 引用不匹配:samples 中使用了 {slotName} 但未在 slots 中定义。
  • 自定义类型未定义:slot 使用了自定义类型但未在 types 中声明。
  • AMAZON 内置类型拼写错误:如 AMAZON.NUMBER 误写为 Amazon.Number

invocationName 是用户唤醒技能时使用的调用短语,例如 "Alexa,打开咖啡助手"。命名规范包括:
• 长度 2-50 个字符
• 只能包含小写字母、数字、空格和少数特殊字符(如 &、')
• 不能以 "alexa"、"amazon"、"echo" 等保留词开头
• 避免使用 "启动"、"打开"、"使用" 等唤醒词(这些由 Alexa 自动处理)
• 建议使用品牌名或描述性短语

自定义 Slot 类型在 types 数组中定义,每个类型包含 namevalues。values 数组中每个条目包含 name.value(必需)和 name.synonyms(可选,同义词数组)。示例:
{
  "name": "DRINK_TYPE",
  "values": [
    {"name": {"value": "咖啡", "synonyms": ["美式", "拿铁"]}},
    {"name": {"value": "茶", "synonyms": ["绿茶", "红茶"]}}
  ]
}
类型名称通常使用大写蛇形命名(如 MY_CUSTOM_TYPE),以区别于 AMAZON 内置类型。

samples(示例语句)中,使用大括号引用 slot:{slotName}。例如:
"我想喝一杯 {drinkType}"
其中 drinkType 必须在该 intent 的 slots 数组中定义。Slot 名称区分大小写,建议使用驼峰命名(camelCase)。一个 sample 可以包含多个 slot 引用,例如:"从 {fromCity} 到 {toCity} 的航班"

常用的 AMAZON 内置类型包括:
AMAZON.NUMBERAMAZON.DATEAMAZON.TIMEAMAZON.DURATIONAMAZON.CITYAMAZON.CountryAMAZON.FirstNameAMAZON.PhoneNumberAMAZON.SearchQueryAMAZON.Food 等。使用内置类型时无需在 types 中定义,直接在 slot 的 type 字段引用即可。注意大小写敏感,必须以 AMAZON. 前缀开头。