5

Error code: InvalidIntentSamplePhraseSlot我使用新技能控制台构建模型时收到错误代码。完整的错误信息是

Sample utterance "AddBookmarkIntent i am at {pageno} of {mybook}" in intent "AddBookmarkIntent" cannot include both a phrase slot and another intent slot. Error code: InvalidIntentSamplePhraseSlot - 

在哪里和{pageno}AMAZON.NUMBER{mybook}AMAZON.SearchQuery

错误是什么,我该如何解决?

编辑:为意图添加 JSON

{
    "name": "AddBookmarkIntent",
    "slots": [
        {
            "name": "mybook",
            "type": "AMAZON.SearchQuery"
        },
        {
            "name": "pageno",
            "type": "AMAZON.NUMBER"
        }
    ],
    "samples": [
        "i am at {pageno} of the book {mybook}",
        "save page {pageno} to the book {mybook}",
        "save page {pageno} to {mybook}",
        "i am at {pageno} of {mybook}"
    ]
}
4

3 回答 3

8

在您的情况下,不允许在与另一个插槽AMAZON.SearchQuery相同的话语AMAZON.NUMBER中使用该类型的插槽。

根据需要标记其中一个插槽并单独索取。

一个小例子:

在话语和槽中创建 Intent:

"intents": [
    {
      "name": "AddBookmarkIntent",
      "samples": [
        "I am at {pageno}"
      ],
      "slots": [
        {
          "name": "mybook",
          "type": "AMAZON.SearchQuery",
          "samples": [
            "For {mybook}"
          ]
        },
        {
          "name": "pageno",
          "type": "AMAZON.NUMBER"
        }
      ]
    }

根据需要标记特定插槽,以便 Alexa 自动请求它:

"dialog": {
  "intents": [
    {
      "name": "AddBookmarkIntent",
      "confirmationRequired": false,
      "prompts": {},
      "slots": [
        {
          "name": "mybook",
          "type": "AMAZON.SearchQuery",
          "elicitationRequired": true,
          "confirmationRequired": false,
          "prompts": {
            "elicitation": "Elicit.Intent-AddBookmarkIntent.IntentSlot-mybook"
          }
        }
      ]
    }
  ]
}

并创建提示以请求插槽:

"prompts": [
  {
    "id": "Elicit.Intent-AddBookmarkIntent.IntentSlot-mybook",
    "variations": [
      {
        "type": "PlainText",
        "value": "For which book you like to save the page?"
      }
    ]
  }
]

使用技能构建器 BETA 而不是它的编辑器,这可能要容易得多,因为它会在后台自动创建 JSON。

于 2018-02-23T14:18:26.740 回答
1

该错误告诉您,您的示例话语中有一个意图名称,它应该只有插槽并且看起来像您一样。

"AddBookmarkIntent i am at {pageno} of {mybook}"

“AddBookmarkIntent”实际上不应该在话语中。所以把你的话语变成:

"i am at {pageno} of {mybook}"

我知道有些文档首先显示了带有意图名称的示例话语示例,例如此处。但这在顶部有一个很大的警告: 在此处输入图像描述 所以你必须小心你阅读和遵循的文档,这取决于你构建 Alexa Skill 的方式。
如果您使用的是技能生成器,请遵循此操作。

于 2018-02-22T13:34:35.987 回答
1

不幸的是,一个话语似乎只能引用 1 个“短语”插槽类型。

对于您的具体情况,现在公共测试版中确实有一个非短语插槽类型AMAZON.Book;如果您使用它而不是AMAZON.SearchQuery它可能会起作用?

来源:https ://developer.amazon.com/en-US/docs/alexa/custom-skills/slot-type-reference.html

于 2021-03-21T18:54:18.823 回答