0

使用谷歌的新视觉 DialogFlow CX 构建器,我将参数传递给 Flow。模拟器显示参数已设置,我可以访问它,$session.params.anger 但想知道会话/页面/意图参数是如何设置的。

还有这些条件块的语法是什么。似乎有一些奇怪的 bash 之类的语法。这似乎是一个if/else/endif作品并且具有基本的语法突出显示,但我只是通过反复试验发现了这一点。有这方面的任何文件吗?也许它是 ES 的一个共同特征?

https://cloud.google.com/dialogflow/cx/docs/concept/parameter

愤怒

4

1 回答 1

6

如何为Dialogflow CX定义和设置参数有不同的方法。您可以查看以下示例以获取更多信息。

  1. 意图参数

    一个。在设计时定义 意图参数 b. 在运行时设置

    一世。从上面的屏幕截图中可以看出,用于注释训练短语的任何参数都将从用户查询中捕获,并将由 Dialogflow 设置为 Intent 参数 ( $intent.params.parameter-name )。

    ii. 通过使用参数预设 参数预设

  2. 表单参数或页面参数

    一个。在设计时定义 表单参数 b. 在运行时设置

    一世。从上面的屏幕截图中看到的任何表单/页面参数都将从用户查询中捕获,并将由 Dialogflow 设置为页面参数 ( $page.params.parameter-name )。

    ii. 通过使用参数预设例如,请参阅 1.b.ii

    iii. 通过在Webhook 响应中设置pageInfo.formInfo.parameterInfo字段

{
    "pageInfo": {
        "formInfo": {
            "parameterInfo": {
                "displayName": "geo-city",
                "value": "New York",
                "state": "FILLED"
            }
        }
    }
}
  1. 会话参数

    一个。在运行时设置

    一世。捕获的 Intent 和 Page 参数也作为会话参数 ( $session.params.parameter-name )写入 Dialogflow 的会话。

    ii. 通过使用参数预设例如,请参阅 1.b.ii

    iii. 通过在 Webhook 响应中设置sessionInfo.parameters字段

{
    "sessionInfo": {
        "parameters": {
            "city": "New York"
        }
    }
}

iv. 通过在使用 API 时在 detectIntent 请求中为 Session 类型设置queryParams.parameters请求字段(下面的示例是使用REST API 的 detectIntent

curl \
-X POST \
-H "Authorization: Bearer "$(gcloud auth application-default print-access-token) \
-H "Content-Type: application/json; charset=utf-8" \
--data "{
  'queryInput': {
    'text': {
      'text': 'howdy'
    },
    'languageCode': 'en'
  },
  'queryParams': {
    'timeZone': 'America/Los_Angeles',
    'parameters': {
      'displayName': 'geo-city',
      'value': 'New York'
    }
  }
}" \
"https://dialogflow.googleapis.com/v3beta1/projects/<project-id>/locations/global/agents/<agent-id>/sessions/1234567890:detectIntent"

对于条件响应,我也尝试过这种类型的响应,以下语法对我有用:

if <condition>
  <block> //response to be returned
elif <condition>
  <block>
elif <condition>
  <block>
else
  <block>
endif

结果

于 2020-12-18T07:16:44.540 回答