Dialogflow es Dialogflow意图跟进不符合正确意图

Dialogflow es Dialogflow意图跟进不符合正确意图,dialogflow-es,actions-on-google,Dialogflow Es,Actions On Google,例如,如果您有IntentA,并且您添加了两个后续意图:IntentB,IntentC,它工作正常,它应该添加一个上下文,因为它还没有输出上下文。但问题是。有时,如果您添加另一个上下文,例如FallbackIntent,它只会添加另一个上下文(有时),如果您同时删除它(IntentA和FallbackIntent),那么它们都具有相同的上下文,这意味着它们仍然应该连接,并且层级结构不应该更改,但仍然会更改。它仍然可以完美地工作,但这仍然是一种古怪的行为。你知道为什么会发生这种情况以及如何解决吗

例如,如果您有IntentA,并且您添加了两个后续意图:IntentB,IntentC,它工作正常,它应该添加一个上下文,因为它还没有输出上下文。但问题是。有时,如果您添加另一个上下文,例如FallbackIntent,它只会添加另一个上下文(有时),如果您同时删除它(IntentA和FallbackIntent),那么它们都具有相同的上下文,这意味着它们仍然应该连接,并且层级结构不应该更改,但仍然会更改。它仍然可以完美地工作,但这仍然是一种古怪的行为。你知道为什么会发生这种情况以及如何解决吗

意图A

意图B

退路


解决此问题并组织dialogflow代理结构的最佳方法是使用dialogflow api的
create\u intent()
函数上载意图。
您可以将根意图指定为
parent\u followup\u intent\u name
,所有具有此根意图的意图都将属于相同的意图。请注意,您需要提供root intentID而不是名称

你可以阅读更多关于

编辑:
根据要求,这里有第二种更简单的方法,无需任何编程知识

  • 假设您的代理之前看起来像下面的屏幕截图,并且您希望 将意向分组到
    如何解决
    意向下

  • 转到设置->导出并导入->将代理导出为zip
导出后,解压缩文件并转到intents文件夹。您的文件将类似于下面的屏幕截图

  • 打开
    how to solve.json
    文件并复制此意图的id
  • 打开要在
    如何解决
    
    意图(注意,我们必须打开没有
    
    \u usersays\u en
    ,因为它们只包含用户的话语
  • 如何解决
    意图的id粘贴为这些json中的
    parentId
    如下屏幕截图所示的文件(在本例中,
    如何解决的意图id是
    b2131b0e-f86d-429d-957c-65c070ddd5df

  • 完成所有更改后,请压缩目录
  • 再次转到设置->导出和导入->从恢复 zip并选择刚刚创建的zip文件
  • 一旦流程完成,意图将如下面的屏幕截图所示


希望它能有所帮助。

@sid8491-这真是太巧妙了:) 谢谢你!我可以确认这只是一种视觉表现。无需担心更改代码

只是一个小小的补充:当你已经有了后续的打算,他们已经进行了

"id": "70a48f63-662b-48d4-9a78-dd0af3e0db87",
"parentId": "5a1b5861-fadc-480e-b03b-11bc034df8b9",
"rootParentId": "6c9cb1d6-3efb-4bac-b768-ae3265faa7b6",

确保将
rootParentId
调整到根目录的前面提到的
id
,保持parentId不变,就可以全部设置好了。我没有尝试使用follow-up/follow-up/follow-up等结构,但我想说它会以某种方式遵循相同的模式。

还有其他方法吗?我没有使用follow-up意图,所以没有尝试过,但是你能下载zip文件,解压缩它,编辑json文件,然后在不使用API的情况下上传zip吗?(听起来它只是视觉上的——它工作正常,对吗?)@是的,它只是视觉上的,对意图匹配绝对没有影响。但在我看来,最好是这样组织。@囚犯,我这样做是为了保持同样的意图:)@WinterChilly,我用另一种方式更新了答案
"id": "70a48f63-662b-48d4-9a78-dd0af3e0db87",
"parentId": "5a1b5861-fadc-480e-b03b-11bc034df8b9",
"rootParentId": "6c9cb1d6-3efb-4bac-b768-ae3265faa7b6",