Dialogflow CX:如何将会话参数用作表单参数?

问题描述

我希望我的聊天机器人查看它目前已知的会话参数。但是,有些是可选的。因此,虽然我可以在条目对话中简单地陈述其中的大部分内容,但其中一些我只想在已经填写的情况下进行陈述。完成后,我想继续下一页。 我这样做的计划如下:

  • 入口对话“到目前为止我知道$session.params.something$session.params.something-else”@H_404_11@。
  • 参数$session.params.optional,履行:代理说“我也知道$session.params.something-optional。”@H_404_11@
  • 有条件的过渡路线true。 -> 转到下一页

但是,我真的不知道如何告诉参数检查以前填写的会话参数。简单地在会话参数之后命名参数并不能解决问题。

解决方法

我不知道我是否完全理解你的问题:这是我的理解。

  1. 您有一些 总是 存在的 session.params -> 您在输入对话框中说明它们。
  2. 你还有 session.params,它们有时出现 -> 你想知道如何在对话中表达它们,只有当它们被填满时。

如果是这种情况,我可能会想出两个解决方案:

选项 1 假设页面名为Recap。作为Recap 的入口对话,您可以添加您在第一项中所写的内容:“到目前为止,我知道 $session.params.something 和 $session.params.something-else”。

然后我会添加两个单独的条件路由:

  1. 首先检查可选参数是否全部填满。如果一些可选参数已被填充,您可以在进入下一页之前在此处添加一个说明此可选参数的实现。 route

  2. 第二个就到下一页了,因为$session.params.optional会为null:注意按这个顺序放!

选项 2 第二种选择可能是构建您自己的条件响应:因此转到 Entry 对话,然后添加对话选项,然后添加条件响应。此块允许您编写自己的条件,例如:

if $session.params.optional != null
  So far I know that $session.params.something and $session.params.something-else. I also know that $session.params.optional
else
  So far I know that $session.params.something and $session.params.something-else.
endif