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

Sar*_*ran 6 if-statement api-ai dialogflow-es

我有$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')
Run Code Online (Sandbox Code Playgroud)

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

cor*_*ulu 7

回复较晚,但也许有人会觉得有用。

如果条件响应仅需要引用单个参数值,那么我想出了可以做的事情就是利用实体的“参考值”作为要为特定同义词集提供的响应。

因此,您将拥有一个看起来像这样的实体:

然后,通过以下方式设置您的意图$Dinetype

然后,最终结果将如下所示:

您可以从那里做出任何需要的跟进意图。

缺点是Dinetype不会重复使用。但是我仍然认为,每当您需要一个简单的条件响应时,它就比编写实现网络挂钩要好。

  • 那既辉煌又残酷。{: (2认同)
  • 绝对辉煌​​。很好的解决方案! (2认同)

Pri*_*ner 5

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

I think $Dinetype is great food.
Run Code Online (Sandbox Code Playgroud)

但不是

{{#if $Dinetype == "Thai"}}I think Thai food is too hot{{/if}}
Run Code Online (Sandbox Code Playgroud)

或类似的东西

但是,您可以通过实现实现 Webhook 来添加发送条件响应和上下文的代码。尽管您无法在Intent编辑器屏幕的一部分中对每个Intent进行此操作,但Fulfillment屏幕包含内置的代码编辑器。