如何为插槽的URL参考创建Alexa目录

问题描述 投票:1回答:1

我发现this example正在使用Catalog URL Reference填充Alexa Skill中的自定义插槽。

问题是我不知道如何填充此目录。

我能够使用ask cli这样创建模型目录:

ask api create-model-catalog -n catalog_name -d "description"

[以catalogId的形式生成"catalogId""amzn1.ask.interactionModel.catalog.blabla"类似于第一个链接中的GitHub示例中的那个。

问题是我不知道如何将值(例如上例中的ingredients.json)放入该目录中。

我尝试使用

ask api create-model-catalog-version -c catalogId -f ingredients.json

但是我得到的是

Call create-model-catalog-version error.
Error code: 400
{
  "message": "Request is not valid.",
  "violations": [
    {
      "message": "'source' field of the request is invalid."
    }
  ]
}

在文档中,没有一个如何处理此问题的示例,因此我被困在这一点。

感谢您的帮助

alexa alexa-skill alexa-slot
1个回答
0
投票

为了使用Alexa技能创建和使用目录,您必须:

  1. 将目录文件上传到存储桶或另一个公共存储端点。

  2. 之后,您必须指定一个具有以下内容的JSON文件(例如catalog.json):

{
  "type": "URL",
  "url": "[your catalog url]"
}
  1. 使用ask api来创建目录,如上所述,以获取目录ID:
ask api create-model-catalog --catalog-name "IngredientsCatalog"
--catalog-description "Ingredients"
  1. [使用包含目录URL的文件创建模型目录版本:
ask api create-model-catalog-version --file .\catalog.json --catalog-id [your catalog-id]
  1. 此调用将提供跟踪创建版本状态的命令。类似于:
ask api get-model-catalog-update-status -c [your catalog-id] -u [request id]
  1. 如果成功创建了版本,则可以在技能交互模型上进行设置:
            "types": [
                {
                    "name": "Ingredient",
                    "valueSupplier": {
                        "type": "CatalogValueSupplier",
                        "valueCatalog": {
                            "catalogId": "[your catalog-id]",
                            "version": "[the desired version number]"
                        }
                    }
                }
            ]
© www.soinside.com 2019 - 2024. All rights reserved.