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:根据值和其他条件响应进行响应的主要内容,如果未能解决你的问题,请参考以下文章
Dialogflow Facebook 集成未响应页面的传入消息
如何管理 Dialogflow / Api.ai 中的 5 秒响应超时限制?