允许用户在使用一次启动短语后向 Alexa 发出多个命令
Allow users to issue multiple commands to Alexa after using the launch phrase once
如果每个意图都需要技能的调用名称,那么启动短语的目的是什么?
例如,这是有道理的:
"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, ask {invocation_name} to {utterance}" 的对话框结构过于臃肿,很难从文档中看出如何解决这个问题。我希望我在启动短语的工作方式中遗漏了一些东西,这将允许我的用户更自然地发出命令。
如果保持会话活动,则不必每次都使用调用名称。为此,您必须在响应 JSON 中包含 shouldEndSession
参数并将其设置为 false
。当 shouldEndSession
设置为 true
或不存在时,Alexa 结束会话。
例如: for LaunchRequest
给出这样的回复。
{
'version':'1.0',
'sessionAttributes':{
},
'response':{
'outputSpeech':{
'type':'PlainText',
'text':'Launch phrase here'
},
'reprompt':{
'outputSpeech':{
'type':'PlainText',
'text':'re-prompt phrase here'
}
},
'shouldEndSession':false
}
}
请注意 shouldEndSession
为 false,这会使会话保持活动状态。并且用户可以只说 "move forward" 而无需使用调用名称。
当您真正想要结束会话时,将 shouldEndSession
设置为 true
。
例如:对于Amazon.StopIntent
注意: 即使您将 shouldEndSession
设置为 false
,默认的 Alexa 会话超时为 8 秒且不可配置。
每个意图不需要调用名称。
以下可能性很大:
"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)
这些话语不是一个接一个说出来的,它们都是独立的命令。
一旦启动了一项技能,只要会话处于活动状态,您就不需要一次又一次地重复调用。
如果每个意图都需要技能的调用名称,那么启动短语的目的是什么?
例如,这是有道理的:
"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, ask {invocation_name} to {utterance}" 的对话框结构过于臃肿,很难从文档中看出如何解决这个问题。我希望我在启动短语的工作方式中遗漏了一些东西,这将允许我的用户更自然地发出命令。
如果保持会话活动,则不必每次都使用调用名称。为此,您必须在响应 JSON 中包含 shouldEndSession
参数并将其设置为 false
。当 shouldEndSession
设置为 true
或不存在时,Alexa 结束会话。
例如: for LaunchRequest
给出这样的回复。
{
'version':'1.0',
'sessionAttributes':{
},
'response':{
'outputSpeech':{
'type':'PlainText',
'text':'Launch phrase here'
},
'reprompt':{
'outputSpeech':{
'type':'PlainText',
'text':'re-prompt phrase here'
}
},
'shouldEndSession':false
}
}
请注意 shouldEndSession
为 false,这会使会话保持活动状态。并且用户可以只说 "move forward" 而无需使用调用名称。
当您真正想要结束会话时,将 shouldEndSession
设置为 true
。
例如:对于Amazon.StopIntent
注意: 即使您将 shouldEndSession
设置为 false
,默认的 Alexa 会话超时为 8 秒且不可配置。
每个意图不需要调用名称。
以下可能性很大:
"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)
这些话语不是一个接一个说出来的,它们都是独立的命令。
一旦启动了一项技能,只要会话处于活动状态,您就不需要一次又一次地重复调用。