Dialogflow es 在dialogflow中处理直接问题和上下文问题的正确方法是什么?

Dialogflow es 在dialogflow中处理直接问题和上下文问题的正确方法是什么?,dialogflow-es,chatbot,Dialogflow Es,Chatbot,我正在使用Dialogflow创建一个HR聊天机器人。我无法找到正确的方法让机器人同时处理直接问题和以上下文方式提出的问题。例如: 上下文案例: 用户:我想知道我一年能休多少次假 机器人:你得到x片叶子 用户:好的,那我怎么申请呢 Bot:按照此流程申请休假 直接案例(2次单独对话,直接提问): 对话1: 用户:我想知道我一年能休多少次假 机器人:你得到x片叶子 对话2: 用户:我想知道如何申请休假 Bot:按照此流程申请休假 我尝试过的方法: 1) 添加输入和输出上下文以处理上下文案例,并向知

我正在使用Dialogflow创建一个HR聊天机器人。我无法找到正确的方法让机器人同时处理直接问题和以上下文方式提出的问题。例如:

上下文案例: 用户:我想知道我一年能休多少次假

机器人:你得到x片叶子

用户:好的,那我怎么申请呢

Bot:按照此流程申请休假

直接案例(2次单独对话,直接提问): 对话1:

用户:我想知道我一年能休多少次假

机器人:你得到x片叶子

对话2:

用户:我想知道如何申请休假

Bot:按照此流程申请休假

我尝试过的方法:

1) 添加输入和输出上下文以处理上下文案例,并向知识库添加直接问题。 这种方法的问题是,由于我们不能在知识库中给出多个短语,大多数直接问题不匹配

2) 有两种意图,一种是输入和输出上下文,另一种是处理直接问题。(例如:一个意图是
leaves.apply.context
,该意图将设置输入和输出上下文,并包含培训短语,如
我如何申请此
,另一个意图是
leaves.apply.direct
,该意图包含培训短语,如
我如何申请休假,且无上下文)。我不相信这是正确的方式,因为我本质上是在用相同的回答为同一个问题创造两个意图


那么有没有推荐的方法来解决这个问题呢?

我认为没有推荐的方法来解决这个问题,这是一个品味的问题。你的解决方案是一个很好的解决方法,但我不认为你会回避这样一个事实,即如果你想让后续问题也可以直接从上下文中接近,那么你就必须用同样的回答做出额外的意图


如果你真的不想为同一个响应创建两个意图,我认为你可以通过创建两个意图并删除上下文流来解决这个问题。只需在没有任何上下文的情况下创建一个
HowManyLeavesAvailableIntent
和一个
如何应用forleaveintent
,并训练
如何应用forleaveintent
以触发后续
HowManyLeavesAvailableIntent
的短语,并直接提问
如何应用forleaveintent
。由于缺少上下文,这可能并不理想,因为它可以创建到意向的奇怪映射,但它将允许您对如何申请休假只有一个意向。

我认为没有推荐的方法,这是一个品味问题。你的解决方案是一个很好的解决方法,但我不认为你会回避这样一个事实,即如果你想让后续问题也可以直接从上下文中接近,那么你就必须用同样的回答做出额外的意图


如果你真的不想为同一个响应创建两个意图,我认为你可以通过创建两个意图并删除上下文流来解决这个问题。只需在没有任何上下文的情况下创建一个
HowManyLeavesAvailableIntent
和一个
如何应用forleaveintent
,并训练
如何应用forleaveintent
以触发后续
HowManyLeavesAvailableIntent
的短语,并直接提问
如何应用forleaveintent
。由于缺少上下文,这可能并不理想,因为它可能会创建到意向的奇怪映射,但它将允许您在如何申请休假方面只有一个意向。

Ahh所以重复意向就是这样。谢谢你的回复。我想知道为什么dialogflow没有提供一个更简单的方法来实现这一点,因为它不是一个很少见的用例。谢谢你的回复。我想知道为什么dialogflow没有提供一个更简单的方法来实现这一点,因为它不是一个非常罕见的用例。。