gpt4 book ai didi

node.js - 有没有办法使用内联编辑器而不是使用后续意图来要求用户确认?

转载 作者:太空宇宙 更新时间:2023-11-04 01:31:36 25 4
gpt4 key购买 nike

我有两个意图 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}`);
}
}

最佳答案

您混淆了几个概念。虽然可以使用内联编辑器来执行实现,并且可以在没有后续意图的情况下确认用户的输入,但您仍然需要额外的意图来进行确认。

有关 Dialogflow 实现编程,需要了解两件重要的事情:

  1. 所有来自用户的响应都必须通过 Intent。它不需要是唯一的或后续意图,但用户所说的意图始终以这种方式捕获。
  2. 当 Intent 被触发时,它可以将信息发送到 Intent Handler。这是意图处理程序从用户获取信息的唯一方式。当处理程序被触发时,它不会等待进一步的用户输入。它所能做的就是发送回复。

所以在你的代码中,一旦你发送了

conv.ask(`Is ${name} correct?`);
agent.add(conv);

您不会在同一个意图处理程序中从该提示中获得响应。

您将需要另一个 Intent 来捕获用户说"is"或“否”。您可以将其作为一个或两个意图来完成 - 具体取决于您。然后根据用户所说的内容再次提示他们。

您的问题与 this article 中描述的问题类似,它指出我们如何回复基于两件事:

  1. 当前状态(就您而言,您要求他们确认哪个问题)
  2. 用户的回复("is",在这种情况下您保存信息并询问下一个问题,或者“否”,在这种情况下您重复问题)

关于node.js - 有没有办法使用内联编辑器而不是使用后续意图来要求用户确认?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55947464/

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