如果每个意图都需要技能的调用名称,那么启动短语的目的是什么?
例如,这很有意义:
"Alexa, open adventure game" (launch phrase)
"move forward" (intent)
"pick up item" (intent)
"close adventure game" (exit)
但是从我所看到的情况来看,您必须这样做:
"Alexa, open adventure game" (launch phrase)
"Alexa, ask adventure game to move forward" (intent)
"Alexa, ask adventure game to pick up item" (intent)
"Alexa, close adventure game" (exit)
我真正的问题是“ Alexa,要求{invocation_name}到{utterance}”的对话框结构太过膨胀,很难从文档中看到如何解决此问题。我希望在启动短语的工作方式方面有所遗漏,从而使我的用户可以更自然地发出命令。
答案 0 :(得分:0)
如果使会话保持活动状态,则不必每次都使用调用名称。为此,您必须在响应JSON中包含shouldEndSession
参数并将其设置为false
。当shouldEndSession
设置为true
或不存在时,Alexa结束会话。
LaunchRequest
的Ex:给出这样的响应。
{
'version':'1.0',
'sessionAttributes':{
},
'response':{
'outputSpeech':{
'type':'PlainText',
'text':'Launch phrase here'
},
'reprompt':{
'outputSpeech':{
'type':'PlainText',
'text':'re-prompt phrase here'
}
},
'shouldEndSession':false
}
}
请注意,shouldEndSession
为假,这使会话保持活动状态。用户只需说出 “前进” ,而无需使用调用名称。
当您实际要结束会话时,请将shouldEndSession
设置为true
。
Ex :代表Amazon.StopIntent
注意:即使您将shouldEndSession
设置为false
,默认的Alexa会话超时也是8秒,并且它是不可配置的。
答案 1 :(得分:0)
并非所有意图 都需要调用名称。
以下是很有可能的:
"Alexa, open adventure game" (launch phrase)
"move forward" (intent)
"pick up item" (intent)
"close adventure game" (exit)
您是否有技能方面的问题,或者只是在阅读技能库中的示例发声时注意到的事情?
如果您在使用技巧方面遇到问题,则可能是会话正在超时,并且开发人员未提供任何提示。在这种情况下,必须说唤醒单词+调用(Alexa,开放式冒险游戏)才能再次启动该技能。
如果仅按照给出的示例(第二组)进行操作,则必须了解每种话语不仅是意图性话语,而是启动+意图性话语。这就是说,这些示例中的每一个都是用于启动技能和的意图。所以基本上您的示例是
"Alexa, open adventure game" (launch phrase)
"Alexa, ask adventure game to move forward" (launch phrase + intent)
"Alexa, ask adventure game to pick up item" (launch phrase + intent)
"Alexa, close adventure game" (launch phrase + exit)
这些话不应该一个接一个地讲,它们都是独立的命令。
一旦启动了一项技能,只要会话处于活动状态,您就不需要一次又一次地重复调用。