【问题标题】:How to create Alexa Catalog for URL Reference for slots如何为插槽的 URL 参考创建 Alexa 目录
【发布时间】:2020-04-17 08:24:48
【问题描述】:

我发现 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】:

    为了在您的 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]"
                            }
                        }
                    }
                ]
    

    【讨论】:

      【解决方案2】:

      我可以在这里添加一些可能会有所帮助的内容:

      在上述答案的第 1 步中,根据我的测试,S3 存储桶必须是公开的。此外,以下是您将要使用的 JSON 格式,包括在官方 Amazon example 中未描述的同义词的使用。请注意,您不必包含该示例中所示的 ID。

      {                
        "values": [
            {
                "name": {
                    "value": "hair salon",
                    "synonyms": [
                        "hairdresser",
                        "beauty parlor"
                    ]
                }
            },
            {
                "name": {
                    "value": "hospital",
                    "synonyms": [
                        "emergency room",
                        "clinic"
                    ]
                }
            },
      
        ]
      }
      

      【讨论】:

        猜你喜欢
        • 2020-09-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-10-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多