仅从 Alexa Skills Kit 获取单个单词参数
Only getting single word parameters from Alexa Skills Kit
我正在编写 Alexa Skill,我只能将单个单词参数放入我的代码中。
这是意图模式:
{
"intents": [
{
"intent": "HeroQuizIntent",
"slots": [
{
"name": "SearchTerm",
"type": "SEARCH_TERMS"
}
]
},
{
"intent": "HeroAnswerIntent",
"slots": [
{
"name": "SearchTerm",
"type": "SEARCH_TERMS"
}
]
},
{
"intent": "AMAZON.HelpIntent"
}
]
}
我的示例话语是:
HeroQuizIntent quiz me
HeroAnswerIntent is it {SearchTerm}
对于 HeroAnswerIntent,我正在检查 SearchTerm 插槽,但我只在其中找到单个单词。
因此,"Peter Parker" 给出 "Parker","Steve Rogers" 给出 "Rogers","Tony Stark" 给出 "Stark"。
如何将多个词放入一个槽中?
我不得不将插槽类型更改为 AMAZON.LITERAL。
诀窍在于,在示例话语中,我还必须提供多个话语来演示 Alexa 应该解释的最小和最大文字大小。这很不稳定,但有效。
我的技能遇到了同样的问题,这是唯一适用于我的技能使用多个单词的解决方案,但你需要检查这些槽是否不为空并将它们连接起来
意图架构:
{
"intent": "HeroAnswerIntent",
"slots": [
{
"name": "SearchTermFirst",
"type": "SEARCH_TERMS"
},
{
"name": "SearchTermSecond",
"type": "SEARCH_TERMS"
},
{
"name": "SearchTermThird",
"type": "SEARCH_TERMS"
}
]
},
示例话语
HeroAnswerIntent is it {SearchTermFirst}
HeroAnswerIntent is it {SearchTermFirst} {SearchTermSecond}
HeroAnswerIntent is it {SearchTermFirst} {SearchTermSecond} {SearchTermThird}
最后一个你需要在SEARCH_TERMS插槽定义
中将你的每个单词放在单独的行中
同时使用 AMAZON.LITERAL 有时根本不会将变量传递给技能,即使您使用服务模拟器(技能控制台,测试选项卡)对其进行测试
@Xanxir 提到的解决方案与较新的 custom slots 格式等效。在这种情况下,您只需将多个长度示例放入您的插槽类型的自定义值列表中。
AMAZON.SearchQuery
所以你可以在你的话语中使用这个,它会检测用户说出的所有单词,它相当准确
它将解决您的问题。
参考 Link:Alexa SearcQuery
我正在编写 Alexa Skill,我只能将单个单词参数放入我的代码中。
这是意图模式:
{
"intents": [
{
"intent": "HeroQuizIntent",
"slots": [
{
"name": "SearchTerm",
"type": "SEARCH_TERMS"
}
]
},
{
"intent": "HeroAnswerIntent",
"slots": [
{
"name": "SearchTerm",
"type": "SEARCH_TERMS"
}
]
},
{
"intent": "AMAZON.HelpIntent"
}
]
}
我的示例话语是:
HeroQuizIntent quiz me
HeroAnswerIntent is it {SearchTerm}
对于 HeroAnswerIntent,我正在检查 SearchTerm 插槽,但我只在其中找到单个单词。
因此,"Peter Parker" 给出 "Parker","Steve Rogers" 给出 "Rogers","Tony Stark" 给出 "Stark"。
如何将多个词放入一个槽中?
我不得不将插槽类型更改为 AMAZON.LITERAL。
诀窍在于,在示例话语中,我还必须提供多个话语来演示 Alexa 应该解释的最小和最大文字大小。这很不稳定,但有效。
我的技能遇到了同样的问题,这是唯一适用于我的技能使用多个单词的解决方案,但你需要检查这些槽是否不为空并将它们连接起来
意图架构:
{
"intent": "HeroAnswerIntent",
"slots": [
{
"name": "SearchTermFirst",
"type": "SEARCH_TERMS"
},
{
"name": "SearchTermSecond",
"type": "SEARCH_TERMS"
},
{
"name": "SearchTermThird",
"type": "SEARCH_TERMS"
}
]
},
示例话语
HeroAnswerIntent is it {SearchTermFirst}
HeroAnswerIntent is it {SearchTermFirst} {SearchTermSecond}
HeroAnswerIntent is it {SearchTermFirst} {SearchTermSecond} {SearchTermThird}
最后一个你需要在SEARCH_TERMS插槽定义
中将你的每个单词放在单独的行中同时使用 AMAZON.LITERAL 有时根本不会将变量传递给技能,即使您使用服务模拟器(技能控制台,测试选项卡)对其进行测试
@Xanxir 提到的解决方案与较新的 custom slots 格式等效。在这种情况下,您只需将多个长度示例放入您的插槽类型的自定义值列表中。
AMAZON.SearchQuery
所以你可以在你的话语中使用这个,它会检测用户说出的所有单词,它相当准确
它将解决您的问题。
参考 Link:Alexa SearcQuery