Amazon Lex-没有ElicitSlot的切换意图

问题描述 投票:0回答:1

我试图在不使用ElicitSlot的情况下切换Intent。原因是因为我的下一个Intent不需要插槽或用户输入。

当前,我正在使用ElicitSlot。在“问候语”中,我设置了“插槽编号”。根据新闻意图,我检查广告位“ Nums”是否存在并进行相应的处理。但是,这不起作用,它仍然要求“ Nums”插槽提示。

当前问候语意图:实现

var sessionAttributes = intentRequest.sessionAttributes;
var slots = intentRequest.currentIntent.slots;

const num = slots.Num;

if(num == 1){
    str = 'News';
    intentRequest.currentIntent.name = 'News';
    intentRequest.currentIntent.slots = {
        Nums: 3
    }
    callback(close(sessionAttributes, str, intentRequest.currentIntent.slots, 'Nums'));
}

当前新闻意图:Lambda初始化和验证

if(!slots.Nums){
    slots.Nums = intentRequest.inputTranscript;
    callback(close(sessionAttributes, 'News', slots, 'Nums'));
}

if(slots.Nums){
    callback(close(sessionAttributes, 'News', slots, 'Displaying News...'));
}

示例成功对话框:

用户:嗨

Bot:欢迎:(1)新闻(2)选项2(3)选项3

用户:1

Bot:显示新闻...

amazon-web-services aws-lambda amazon-lex
1个回答
0
投票
一种解决方法是您自己调用“显示新闻”意图代码。由于示例代码是Lambda代码,因此您可以控制该代码流,而无需依赖Lex进行中介。

if(num == 1){ callback(close(sessionAttributes, 'News', slots, 'Displaying News...')); }

© www.soinside.com 2019 - 2024. All rights reserved.