【问题标题】:How can I delegate the LaunchRequest to an IntentRequest using the alexa-sdk from npm如何使用 npm 的 alexa-sdk 将 LaunchRequest 委托给 IntentRequest
【发布时间】:2018-05-26 02:14:08
【问题描述】:

我正在使用alexa-sdk 在节点中构建 Alexa 技能。我正在使用dialog model 来处理用户交互。我在将流程传递给新的request types 时遇到了一些问题,例如从启动请求到意图请求。

以下是我的处理程序的示例以及我想要的理想情况。我的具体用例是我想问用户一些问题,然后根据他们的回答将它们发送到不同的意图。在意图中,我希望能够访问请求对象,就好像它们最初输入了该意图一样,因此对话模型可以完成它的工作。

const handlers = {
    'LaunchRequest': function () {
        this.emit('Entry'); // this does not do what I want
    },
    'Entry': function () {
        let request = this.event.request; // this is the launch request object.
        // I would like to get the request object for Entry, like if the user started here

        // ask some questions, potentially passing the torch to a new intent based on the answers
    }
};

那么,有没有办法像用户最初向该意图发出请求一样“调用”意图?抱歉,如果我遗漏了文档中的一些明显内容,我认为我进行了相当彻底的搜索,但是有很多文档。 ps:我当然可以手动构造请求对象,但我觉得我真的不应该。

【问题讨论】:

    标签: node.js alexa alexa-skills-kit alexa-skill


    【解决方案1】:

    我很确定目前还没有办法按照您的要求调用意图。

    如果你仔细阅读对话框指令here 的语法描述,它会说:

    请注意,当返回 Dialog 指令时,您无法更改意图,因此意图名称和插槽集必须与发送给您的技能的意图相匹配。

    通过返回一个对话指令,您可以“引出”或“确认”槽位或意图,甚至可以让代表为您处理对话,并在技能构建器中设置提示和重新提示。

    据我所知,触发特定意图的唯一解决方案是让用户调用它。您可以引导用户说出特定的话语来触发您的意图。

    至于保存较旧的请求,您可以使用session attributes。只需在 Launch 之后使用包含整个 LaunchRequest 的会话属性构建响应。

    "sessionAttributes": {
    "oldRequest": this.event.request
    }
    

    【讨论】:

    • 好的,然后我将稍微重构一下我的应用程序的对话框,因此启动请求请求用户调用一个意图。谢谢你的时间:)
    猜你喜欢
    • 2020-06-26
    • 1970-01-01
    • 2015-06-09
    • 1970-01-01
    • 1970-01-01
    • 2021-05-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多