我正在为Google环聊创建一个新的机器人。似乎使用Dialogflow可能是最好的工具。 (如果我错了,请告知否则)。目标是能够创建一个问答机器人,使其能够检索用户的完整答复作为答案。
我尝试谷歌搜索几个不同的搜索词,但没有找到答案,我开始认为Dialogflow不是适合我的工具。
我要创建的机器人应该能够进行以下对话:(B:机器人,U:用户)
U: I would like to work remotely today.
B: Ok, please let us know what you will be working on today
U: I will be completing task A, B and C
B: Great, your team has been notified that you will be completing task A, B and C.
或
U: I will be in the office late today
B: Sure, what time do you think you will be in the office?
U: Before 2pm
B: Great, your team has been notified you will be in the office before 2pm
我一直在尝试使用Dialogflow做到这一点。我可以通过使参数成为必需参数,然后提示输入更多信息来使机器人请求下一次输入,问题是对提示的响应要求我通过实体输入固定的答案。它无法捕获完整的用户响应作为答案。
答案 0 :(得分:2)
不清楚您认为需要哪个答复才能获得“全面答复”。通常,Dialogflow可以帮助您获取所需信息的重要部分作为参数,并帮助过滤掉用户输入的其他部分,这些部分可能有所不同,但在语义上是相同的。
因此,在第一个示例中,您可能想选择诸如
我用[括号]标记的部分确实是您想要的部分,答复的其他部分在语义上是相同的。您可以用@sys.any
标记每个部分,就像正则表达式.*
一样(但不完全一样)。
对于第二个示例,您可能需要多个与您的回复相匹配的Intent。请记住:意图与用户所说的相符,而不是您如何处理回复。
一个意图可能会收集特定的答案,例如:
每个参数都有两个参数-一个是时间,另一个是相对于该时间的短语。
您还可以将其他意图与诸如
,这些根本不需要参数。 Intent本身应反映用户打算说的话。
在所有这些情况下,您都需要为要询问的特定问题设置一个“后备意图”。您可能只想记录该答案,或者可能要使用回退意图来提示他们输入所需的消息。
答案 1 :(得分:2)
您需要弄清楚用户可能会对您的机器人说什么,并基于此您需要在dialogflow代理中创建不同的意图。
当用户说些什么时,dialogflow将通过匹配意图并从中提取参数来尝试找出用户的意图,然后您可以基于此意图配置响应。
例如,您可以使用用户短语work_remotely
,I would like to work remotely today
来制定意图I would like to work remotely today and will be working on tasks A, B and C
。
分配参数@sys.any
并突出显示A, B and C
。另外,您可以将该参数标记为必需,并提供提示Ok, please let us know what you will be working on today
,用户将对其正在执行的任务做出响应。最后,机器人将捕获参数值并给出响应Great, your team has been notified that you will be completing task $parameter_value.
类似地,您需要设计多个流程,制定意图,使用用户短语对其进行训练,提供参数和响应。
希望有帮助。