如何为Dialogflow CX定义和设置参数有不同的方法。您可以查看以下示例以获取更多信息。
意图参数
一个。在设计时定义
b. 在运行时设置
一世。从上面的屏幕截图中可以看出,用于注释训练短语的任何参数都将从用户查询中捕获,并将由 Dialogflow 设置为 Intent 参数 ( $intent.params.parameter-name )。
ii. 通过使用参数预设
表单参数或页面参数
一个。在设计时定义
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"
}
}
}
}
会话参数
一个。在运行时设置
一世。捕获的 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