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

Alexa技能交互模型文件的组织与部署方法问询

我太懂这种抓瞎的感觉了——官方文档在这些具体的文件组织细节上确实藏得很深,我当初折腾Alexa技能的时候也卡了好久,翻了N多内容才理清这些点。下面给你逐一拆解:

Alexa技能交互模型文件组织与部署全指南

一、项目结构与文件放置(最优实践)

首先说最省心的标准结构,也是ASK CLI初始化项目时自动生成的结构:

  • 项目根目录下创建models文件夹,所有区域设置(locale)的交互模型文件都直接放在这里,比如en-US.json、zh-CN.json等。
  • 如果你坚持要把sample_utterances.txt、自定义槽值列表拆成单独文件,建议按locale分分子目录,结构如下:
    你的技能项目根目录
    └── models/
        ├── en-US/
        │   ├── en-US.json       # 英文美国的核心交互模型
        │   ├── sample_utterances.txt  # 英文样本语句
        │   └── custom_slots/
        │       ├── Fruit.txt     # 自定义槽类型Fruit的所有值
        │       └── City.txt      # 自定义槽类型City的所有值
        └── fr-FR/
            ├── fr-FR.json
            ├── sample_utterances.txt
            └── custom_slots/
    
    这种结构能清晰区分不同locale的资源,避免混乱。

二、Sample Utterances与.json的相对位置

如果用单独的sample_utterances.txt,必须在对应的<locale>.json里通过imports字段指定它的相对路径。比如en-US.json里要加:

{
  "interactionModel": {
    "languageModel": {
      "invocationName": "我的水果助手",
      "intents": [] // 这里是你的意图定义
    },
    "imports": [
      {
        "name": "sample_utterances",
        "path": "./sample_utterances.txt"
      }
    ]
  }
}

路径是相对于当前json文件的位置,所以如果两者在同一个文件夹,直接写文件名就行。

三、多区域Sample Utterances的处理与映射

每个locale的资源是完全独立的:

  • 给每个locale单独创建一套sample_utterances.txt,比如en-US的放在models/en-US/,fr-FR的放在models/fr-FR/。
  • 确保每个locale的json文件里的imports路径指向对应区域的样本文件,这样ASK CLI部署时会自动把对应locale的模型和样本语句关联起来。

四、在.json中关联自定义槽类型值列表

如果用单独的槽值文件(比如Fruit.txt),需要在json的languageModel.types里定义槽类型,并通过valuesImportPath指定文件路径:

{
  "interactionModel": {
    "languageModel": {
      "types": [
        {
          "name": "Fruit",
          "valuesImportPath": "./custom_slots/Fruit.txt"
        }
      ]
    }
  }
}

槽值文件的格式很简单,每行写一个槽值就行,不需要额外的格式,比如Fruit.txt里就是:

苹果
香蕉
橙子

五、ASK CLI部署的文件指定技巧

  • ask deploy默认会扫描项目中所有符合结构的资源(包括models目录下的所有locale文件),自动部署所有内容。
  • 如果只想部署特定locale的模型,用--target参数指定具体的json文件路径,比如:
    ask deploy --target models/en-US/en-US.json
    
  • 要是你的文件结构比较特殊,可能需要在项目根目录的skill.json里,修改manifest.apis.custom.interactionModel字段,手动指定每个locale的模型路径,但一般用前面说的标准结构就完全够用,不需要额外配置。

真的,这些细节官方文档确实讲得太零散了,我当初也是踩了好几个坑才摸清楚,希望这些内容能帮你理顺!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 04:42:19