Dialogflow:根据值和其他条件响应进行响应

Posted

技术标签:

【中文标题】Dialogflow:根据值和其他条件响应进行响应【英文标题】:Dialogflow: Respond based on values and other conditional responses 【发布时间】:2018-12-30 01:56:50 【问题描述】:

我从用户那里获得了$dinetype 变量。

但我想根据$dinetype 变量中设置的值给出响应。除了给出回应,我还需要设置相关的上下文。如何在 DialogFlow 中执行此操作?

if($Dinetype=='dineout') 
      ask ('which restaurant would you like to go to?')
      set_context ('awaiting-restaurant')
if($Dinetype=='takeaway') 
      ask ('When would you like to take away?')
      set_context ('awaiting-takeaway-time')

它是可编程的吗?或者是否有可能在 UI 中实现与上述相同的功能?

【问题讨论】:

【参考方案1】:

编辑:添加了一种更简单的方法来直接在 Dialogflow 中处理此问题


(更新解决方案)后续意图:

创建 Intent 后,您现在可以添加后续 Intent。Intents -> 创建 Intent [响应=提示条件响应]

意图 -> 添加后续意图 -> 自定义/是/否

然后将训练表扬设置为您想要有条件地响应的匹配实体

  

 


旧的 HACKY 解决方案:


回复晚了,但也许有人会觉得这很有用。

如果条件响应只需要引用单个参数 价值,然后我想出你能做的就是利用实体的 “参考值”作为您要对特定的响应给出的响应 同义词集。

所以你会有一个看起来像这样的实体:

然后,像这样设置你的意图,回复$Dinetype

那么最终的结果会是这样的:

你可以从那里做出任何你需要的后续意图。

缺点是 Dinetype 不会被重复使用。但我还是觉得 每次你需要一个简单的时候都写一个履行网络钩子 条件响应。

【讨论】:

这既绝妙又残酷。 : 绝对精彩。不错的解决方案!【参考方案2】:

您不能直接在“响应”部分执行此操作。响应部分用于处理不需要大量逻辑的相当简单的响应。尽管您可以在响应中使用参数,但您不能根据参数的值给出不同的响应。因此,您可以设置对

之类的响应
I think $Dinetype is great food.

但不是

#if $Dinetype == "Thai"I think Thai food is too hot/if

或类似的东西

但是,您可以通过实现Fulfillment webhook 添加发送条件响应和上下文的代码。尽管您不能将每个 Intent 作为 Intent 编辑器屏幕的一部分执行此操作,但 Fulfillment 屏幕包含一个内置代码编辑器。

【讨论】:

仅根据值返回响应,我们不能使用“文本响应”字段怎么办?

以上是关于Dialogflow:根据值和其他条件响应进行响应的主要内容,如果未能解决你的问题,请参考以下文章

在Web演示中添加图像作为响应(DialogFlow)

Dialogflow Facebook 集成未响应页面的传入消息

如何在聊天机器人中不使用对话框流程提供输入和输出响应?

如何管理 Dialogflow / Api.ai 中的 5 秒响应超时限制?

如何使用 dialogflow.v2beta1 创建默认响应

“由于语音响应为空,无法将 Dialogflow 响应解析为 AppResponse”,使用烧瓶助手