Alexa 技能中的交互模型文件应该如何组织和部署?

How should the interaction model files in an Alexa skill be organized and deployed?

我不敢相信我不得不问这个问题,但我已经安静地搜索了一段时间的文档,但找不到答案:How should the files defining the interaction model in an Alexa skill (<locale>.jsonsample_uterrances.txt、自定义槽类型的值列表)是否已组织和部署?

None 亚马逊似乎回答了这些问题 official documentation,我真的是唯一一个发现所有这些不明显的人吗?

我认为你混淆了两种不同的东西。 "old" 创建 Alexa Skill 的风格,仍然可以通过 developer.amazon.com 使用(没有新的 Skill Builder)。以及通过 Skill Builder 的新方式。 ASK CLI 以某种方式使用 :D 的 "mixed" 形式。使用 Skill Builder,您最终会得到一个包含所有信息的 .json 文件,使用 "old" 方式,您可以填写许多输入字段。 ASK CLI 有:

  • λ/
  • skill.json(一般技能定义)
  • 型号/
    • .json(槽、样本话语等)

我建议您只在终端中执行 ask new,CLI 将创建您需要的所有文件夹。您关于该技能的所有信息(包括样本话语、自定义插槽等)将进入 'models/.json',所有关于您技能的一般信息将进入 'skill.json'。没有 [=72] =],它现在在您的 .json 中,并针对每个意图进行分组。我还可以建议在网络控制台中创建示例技能,然后使用 ask clone 了解它的结构。

以下是您的问题的答案:

  • 这些文件在项目结构中的什么位置:在根目录中,在模型目录中,在单独的语音资产目录中? --> 使用ask new创建默认项目结构。

  • 相对于 .json 我必须将 sample_utterances.txt 放在哪里? --> 示例语句放在 .json

  • 如何处理不同语言环境的多个样本话语文件?它们在哪里相互映射? --> 由于样本话语在 .json 中,它们对于每个语言环境都是不同的

  • 如何在 .json 中指定哪个自定义槽类型值列表属于哪个槽类型? --> 它们也在"types"

  • 下的.json中定义
  • 我如何告诉 ASK CLI 要部署哪些文件? ask deploy 命令只知道一个 --target 参数,似乎无法准确指定哪些文件是每个目标的一部分。 --> ASK CLI 的模型是文件夹中的所有内容都属于一个技能。您可以在 "models" 文件夹中拥有一项技能 "Sample Skill",例如 us-US 和 us-UK 语言环境,一个 skill.json 定义和 "lambda" 文件夹中的 lambda。我认为没有办法用 'ask deploy'

  • 指定文件