错误代码:InvalidIntentSamplePhraseSlot -

时间:2018-02-20 19:37:49

标签: alexa alexa-slot

当我使用新技能控制台构建模型时,我收到了错误代码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}"
    ]
}

3 个答案:

答案 0 :(得分:6)

在您的案例AMAZON.SearchQuery中,不允许在同一个话语中使用另一个广告位的AMAZON.NUMBER类型的广告位。

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

一个小例子:

创建放入话语和插槽的意图:

"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。

答案 1 :(得分:0)

错误告诉您在Sample Motterance中有一个Intent名称,它只有插槽,而且看起来像你一样。

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

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

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

我知道有些文档首先显示了具有Intent Name的示例话语示例such as here。但是在顶部附近有一个很大的警告: enter image description here 因此,根据您构建Alexa技能的方式,您必须小心阅读和遵循哪些文档 Follow this if you are using the Skill Builder.

答案 2 :(得分:0)

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

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

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