我有两个意图get_name和get_age
在get_name中,我输入用户名,启用此意图是为了实现。 在编辑器中,如何要求确认姓名?
如果确认,那么我应该将输出上下文添加到get_name中,以便调用get_age意图。
我尝试使用conv对象在不离开意图的情况下开始对话,但是它甚至没有调用该函数。
function confirmation(agent){
var entity_name = agent.name;
var name = agent.parameters.name;
var conv = agent.conv();
conv.ask(`Is ${name} correct?`);
agent.add(conv);
var user_query = conv.query;
if(user_query.entities.name=='yes'){
agent.setContext({
name: `${entity_name}`+'_done',
lifespan: 2
});
agent.add(`Give your age ${name}`);
}
}
答案 0 :(得分:0)
您正在混淆两个概念。虽然可以使用内联编辑器来执行充实,并且可以在没有后续意图的情况下确认来自用户的输入,但是您仍将需要其他意图来进行确认。
关于Dialogflow实现编程,有两点要理解:
所以在您的代码中,一旦发送
conv.ask(`Is ${name} correct?`);
agent.add(conv);
您将不会在同一个Intent Handler中从该提示获得响应。
您将需要另一个可以捕获用户的“是”或“否”的Intent。您可以将其作为一种或两种意图进行,具体取决于您自己。根据用户所说,然后再次提示他们。
您的问题与this article中描述的问题类似,该问题指出我们的答复基于两件事: