Dialogflow es 对话流上下文和实体

Dialogflow es 对话流上下文和实体,dialogflow-es,Dialogflow Es,我有两个关于Dialogflow的快速问题。我觉得这些应该是相对简单的问题,但我似乎找不到答案 1) 是否有一种方法可以指定在一个或另一个上下文处于活动状态时应触发意图?我知道你可以列出多个输入上下文,但根据我的理解,只有当所有这些上下文都处于活动状态时,才会触发该意图。如果其中任何一个处于活动状态,是否有任何方式触发意图 2) 有没有一种方法可以通过履行为实体分配价值?我认为实现通常在另一个方向工作,但我想在Dialogflow中创建一个实体,通过实现为它分配一个值,然后能够在Dialogfl

我有两个关于Dialogflow的快速问题。我觉得这些应该是相对简单的问题,但我似乎找不到答案

1) 是否有一种方法可以指定在一个或另一个上下文处于活动状态时应触发意图?我知道你可以列出多个输入上下文,但根据我的理解,只有当所有这些上下文都处于活动状态时,才会触发该意图。如果其中任何一个处于活动状态,是否有任何方式触发意图

2) 有没有一种方法可以通过履行为实体分配价值?我认为实现通常在另一个方向工作,但我想在Dialogflow中创建一个实体,通过实现为它分配一个值,然后能够在Dialogflow中继续调用该实体,这样我就不必在不必要时继续使用实现。我不能通过Dialogflow本身分配它们的原因是它不是基于用户输入的

我真的很感激你能帮我回答这两个问题


非常感谢

Ans1。否。如果设置为输入上下文且所有上下文都处于活动状态,则仅触发意图或触发事件

if((all_input_contexts_active && user_says_active) || (event_is_active)){
   trigger intent
}else{
   trigger fallback intent
}<br><br>
if((所有输入上下文处于活动状态&&user表示处于活动状态)|(事件处于活动状态)){
触发意图
}否则{
触发回退意图
}


Ans2。我不这么认为。使用Dialogflow SDK,您可能需要检查它。但是使用webhook看起来不受支持。

基于一个或另一个上下文触发

不,但你有办法解决这个问题。输入上下文必须与列出的所有上下文匹配,这是正确的

但您也可以将多个上下文设置为传出上下文

例如,如果您当前有context-a和context-b,您可以更改内容,以便同时设置context-a和context-ab,或者同时设置context-b和context-ab

然后,您可以在上下文ab上触发一个意图,您可以在设置-a或-b时设置该意图

在履行期间分配实体价值

对。您可以使用Dialogflow的API设置用户实体(有时称为会话实体-它们是相同的)。如果您使用的是v1api,那么您将使用端点。如果您使用的是v2api(您应该这样做),那么您将使用该方法

无论哪种方式,您都需要首先创建实体类型,但不给它任何实际的实体可供使用(或某些默认实体),然后,作为实现的一部分,使用实体和同义词更新实体类型。在该会话期间,用户的进一步呼叫将使用您设置的呼叫