如何从用户那里获得主观答案
How to get subjective answer from user
是否可以从用户那里获得主观答案?
这是我正在尝试构建的示例对话,
- 用户:"I found a bug." => [触发 'bug report' 意图]
- 代理人:"Can you explain the problem?"
- 用户:"App crashes everytime when I ask about xxx." => ['bug report follow-up' 意图失败]
我想捕捉用户的回答,第 3 行。即使我设置了正确的后续上下文,'Default Fallback' 或其他意图也会出现并处理用户响应。似乎没有可以处理这种用户查询的意图。我不能输入 'Training phrase' 因为答案可以是任何句子。也许我可以要求用户回答“[问题是] xxxxx”或“xxxxx [不工作]”,但这不自然并且限制了用户回答。
如果有一种解决方法可以在某些意图后立即捕获整个用户查询,请与我分享。 :)
你应该为此制定 2 个意图,假设 bug-1
和 bug-2
。
在 bug-1
中,提供 在 training phrases
中发现的错误 和 [=14= 中的 错误 ] 和 你能解释一下问题吗? in response
.
现在在 bug-2
中,将 bug 作为 input context
,将训练短语更改为 template mode
并在其中给出 @sys.any
并给出一些参数名称.例如:@sys.any:bug
.
现在错误将包含整个用户查询。
编辑 1:
通过使用 @sys.any:bug
,用户查询将存储在 parameter named bug
中,我们可以通过引用 $bug 将其用于响应。请参阅下面的图片以进行说明。
希望对您有所帮助。
语法 and/or 过程在 sid8491 的回答中并不完全清楚,所以我展示了对我有用的确切过程(2020 年 8 月)。
1.) 在“操作和参数”中手动输入以下内容:
the_user_input
是变量名,随便起)
- 您现在创建一个训练意图:
通过输入符号 @
作为唯一的训练短语,我能够匹配整个用户输入的字符串,选择文本并从弹出的菜单中选择 @sys.any:the_user_input
。
我还没有确认训练短语是否必须是 @
,但我认为是。
如果您执行第 2 步而不执行第 1 步,dialogflow 将警告:
警告您匹配整个短语可能会出现意外 side-effects(就像其他不再匹配的意图一样),您必须设置 follow-on 意图和后备意图来创建此“匹配”的例外整行”规则。
您无法在回退中捕获参数,但您可以捕获父意图上的行并使用 follow-up 意图进行额外的匹配和例外处理。
我还没有对此进行测试,但是如果您的设计要求在父上下文中捕获行并在 follow-up 意图中处理案例,则在响应中使用 the_user_input
的语法应该是类似于:
嗨,你说“#parent_context_name:the_user_input
”
是否可以从用户那里获得主观答案? 这是我正在尝试构建的示例对话,
- 用户:"I found a bug." => [触发 'bug report' 意图]
- 代理人:"Can you explain the problem?"
- 用户:"App crashes everytime when I ask about xxx." => ['bug report follow-up' 意图失败]
我想捕捉用户的回答,第 3 行。即使我设置了正确的后续上下文,'Default Fallback' 或其他意图也会出现并处理用户响应。似乎没有可以处理这种用户查询的意图。我不能输入 'Training phrase' 因为答案可以是任何句子。也许我可以要求用户回答“[问题是] xxxxx”或“xxxxx [不工作]”,但这不自然并且限制了用户回答。 如果有一种解决方法可以在某些意图后立即捕获整个用户查询,请与我分享。 :)
你应该为此制定 2 个意图,假设 bug-1
和 bug-2
。
在 bug-1
中,提供 在 training phrases
中发现的错误 和 [=14= 中的 错误 ] 和 你能解释一下问题吗? in response
.
现在在 bug-2
中,将 bug 作为 input context
,将训练短语更改为 template mode
并在其中给出 @sys.any
并给出一些参数名称.例如:@sys.any:bug
.
现在错误将包含整个用户查询。
编辑 1:
通过使用 @sys.any:bug
,用户查询将存储在 parameter named bug
中,我们可以通过引用 $bug 将其用于响应。请参阅下面的图片以进行说明。
希望对您有所帮助。
语法 and/or 过程在 sid8491 的回答中并不完全清楚,所以我展示了对我有用的确切过程(2020 年 8 月)。
1.) 在“操作和参数”中手动输入以下内容:
the_user_input
是变量名,随便起)
- 您现在创建一个训练意图:
通过输入符号 @
作为唯一的训练短语,我能够匹配整个用户输入的字符串,选择文本并从弹出的菜单中选择 @sys.any:the_user_input
。
我还没有确认训练短语是否必须是 @
,但我认为是。
如果您执行第 2 步而不执行第 1 步,dialogflow 将警告:
警告您匹配整个短语可能会出现意外 side-effects(就像其他不再匹配的意图一样),您必须设置 follow-on 意图和后备意图来创建此“匹配”的例外整行”规则。
您无法在回退中捕获参数,但您可以捕获父意图上的行并使用 follow-up 意图进行额外的匹配和例外处理。
我还没有对此进行测试,但是如果您的设计要求在父上下文中捕获行并在 follow-up 意图中处理案例,则在响应中使用 the_user_input
的语法应该是类似于:
嗨,你说“#parent_context_name:the_user_input
”