gpt4 book ai didi

node.js - 如何将 Dialog.Delegate 指令返回给 Alexa Skill 模型?

转载 作者:搜寻专家 更新时间:2023-10-31 22:36:05 24 4
gpt4 key购买 nike

我想使用 Alexa Skill 模型创建一个简单的多轮对话。我的 intent 由 3 个槽组成,每个槽都是实现 intent 所必需的。我提示每个插槽并定义所有需要的语句。

现在我想用 Lambda 函数处理请求。这是我针对此特定 Intent 的功能:

function getData(intentRequest, session, callback) {
if (intentRequest.dialogState != "COMPLETED"){
// return a Dialog.Delegate directive with no updatedIntent property.
} else {
// do my thing
}
}

那么我将如何继续使用 Dialog.Delegate 指令构建我的响应,如 Alexa 文档中所述?

https://developer.amazon.com/docs/custom-skills/dialog-interface-reference.html#scenario-delegate

提前谢谢你。

最佳答案

使用 Dialog.Delegate 指令,您无法从代码中发送 outputSpeechreprompt。相反,将使用交互模型中定义的那些。

Do not include outputSpeech or reprompt with the Dialog.Directive. Alexa uses the prompts defined in the dialog model to ask the user for the slot values and confirmations.

这意味着您不能委托(delegate)并提供您自己的响应,而是您可以使用任何其他Dialog 指令来提供您的outputSpeech重新提示

例如:Dialog.ElicitSlotDialog.ConfirmSlotDialog.ConfirmIntent

在任何时候,您都可以接管对话而不是继续委托(delegate)给 Alexa。

...
const updatedIntent = handlerInput.requestEnvelope.request.intent;
if (intentRequest.dialogState != "COMPLETED"){
return handlerInput.responseBuilder
.addDelegateDirective(updatedIntent)
.getResponse();
} else {
// Once dialoState is completed, do your thing.
return handlerInput.responseBuilder
.speak(speechOutput)
.reprompt(reprompt)
.getResponse();
}
...

addDelegateDirective() 中的updatedIntent 参数是可选的。它是一个 intent 对象,代表发送到您的技能的 intent 。如有必要,您可以使用此属性集或更改槽值和确认状态。

有关对话框指令的更多信息 here

关于node.js - 如何将 Dialog.Delegate 指令返回给 Alexa Skill 模型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51723671/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com