Dialogflow es Dialogflow实现:将多项选择题分解为单个问题

Dialogflow es Dialogflow实现:将多项选择题分解为单个问题,dialogflow-es,Dialogflow Es,我是Dialogflow的新手,我正在尝试创建一个医疗诊断语音聊天机器人,它的工作原理如下 用户体验 用户呼叫系统并受到聊天机器人的欢迎 Chatbot开始询问与分诊相关的问题(例如,“你有慢性肾病病史吗?”) 用户将回答问题并最终收到某种建议(例如,隔离您自己,或致电您的医生进行XYZ测试) 系统设置 Dialogflow代理欢迎用户,解释我们将询问一系列问题,并提示第一个问题(“您多大了?”) 不同的意图匹配用户的响应(例如,“我40岁了”),并向我的webhook服务器发送webhook请

我是Dialogflow的新手,我正在尝试创建一个医疗诊断语音聊天机器人,它的工作原理如下

用户体验

  • 用户呼叫系统并受到聊天机器人的欢迎
  • Chatbot开始询问与分诊相关的问题(例如,“你有慢性肾病病史吗?”)
  • 用户将回答问题并最终收到某种建议(例如,隔离您自己,或致电您的医生进行XYZ测试)
  • 系统设置

  • Dialogflow代理欢迎用户,解释我们将询问一系列问题,并提示第一个问题(“您多大了?”)
  • 不同的意图匹配用户的响应(例如,“我40岁了”),并向我的webhook服务器发送webhook请求
  • 我的webhook服务器接收到请求,这将触发对第三方医疗API提供商的REST API请求
  • 第三方API提供程序回答一个多选问题(“请选择适用于您的所有语句”)。这就是事情对我来说变得复杂的地方
  • 问题

    将多项选择题分解为单个“是/否”问题的最佳方式是什么?考虑到我正在处理一个语音聊天机器人,我不能连续向打电话的人播放10个问题并期望他们正确回答。我必须一次向打电话的人提出一个问题

    我最初的想法是,我需要在我的webhook服务器中创建某种会话管理,以便它可以一次发送一个问题/响应,并跟踪他们的答案。然而,鉴于Dialogflow已经在进行会话管理,这听起来有些多余。我的首选是让我的webhook服务器保持无状态,并从webhook请求中的上下文对象提取我需要的所有数据

    我不想将所有可能的分类问题硬编码为意图中的“必需参数”。相反,我希望第三方API提供商处理这些内容/问题,原因显而易见

    理想的解决方案是,如果我的webhook服务器能够在每个会话的基础上为意图提供所需参数的动态列表。换句话说,webhook响应将包括所需参数的列表和每个参数的问题/文本。然后,意图将使用此列表一次提示调用方一个问题


    我认为这是不可能的,但我想尝试一下也没什么坏处。。。很可能,我必须在我的webhook服务器中进行一些会话管理和提示流控制。不过,我愿意接受您可能提出的任何新想法或建议。

    您的思路是正确的。虽然您不能动态地为Dialogflow创建要询问的提示,但您可以将需要询问的信息存储在上下文中,并且在他们回答上一个问题时,检查上下文以了解您还需要询问什么,并询问列表上的下一个问题

    此方案可能如下所示:

  • 当你到达面试中需要询问分类问题的部分时,你将调用API,获取要询问的问题列表,并将它们存储在“分类”上下文中,在“问题”参数下具有很长的使用寿命
  • 然后你问第一个问题,把它放在一个“current”参数中,这样你就知道要回答哪个问题了
  • 您将有一个意图,它将“triage”作为输入上下文,并将诸如“yes”、“no”和“我不知道”等响应作为训练短语的实体。这个意图将触发您的webhook
  • 当您的webhook被调用时,您将从参数中获得响应,从“当前”上下文参数中获得所询问的问题,并将这两个参数存储在同一上下文中的“答案”参数中。(或者使用不同的上下文。没什么大不了的。)
  • 然后从上下文中的“questions”参数中选取下一个问题,将其设置为“current”,并将其作为下一个问题提问
  • 然后重复步骤3-5,每次使用相同的意图,直到所有问题都有答案

  • 您的服务器保持无状态-下一个问题所需的所有状态都在“分类”上下文中

    太好了!非常感谢你的回答。太好了!如果答案有帮助,接受和/或投票总是很感激的。