node.js - 我如何在 Intents 中使用所需的参数并检查 allRequiredParamsPresent = true webhooks
问题描述
我正在对话流中制作代理。我想让 Intent 中的参数成为必需的,就像我在 dialogflow ui 控制台中使用相应的 PROMPTS 一样,但是将它写在 nodejs 环境中的 webhook throw firebase 中,以便包含基本卡、轮播。
const app = dialogflow({debug: true});
app.intent(INTENT_NAME, (conv, {parameters1, parameters2,
parameters3, parameters4, parameters5, parameters6, parameters7}) => {
});
这是回应:
{
"responseId": "xxxxxxxxxxxxx",
"queryResult": {
"queryText": "text",
"action": "action_name",
"parameters": {
"parameters1": [
"responsetext1"
],
"parameters2": [
"responsetext2"
],
"parameters3": [
"responsetext3",
"responsetext3"
],
"parameters4": [
"responsetext4"
],
"parameters5": [
"responsetext5"
],
"parameters6": [
"responsetext6"
],
"parameters7": [
"responsetext7"
]
},
"allRequiredParamsPresent": true,
"fulfillmentText": "response text",
"fulfillmentMessages": [
{
"text": {
"text": [
"response text"
]
}
}
],
解决方案
您可以在 webhook 中列出所有必需的参数,然后检查所有这些参数是否具有值。
如果它们为空,则重置上下文并发送响应以询问剩余参数的值。
推荐阅读
- java - 我的 androidManifest.xml 文件中存在设置父活动的问题
- huawei-mobile-services - 由于某些地区显示为国家/地区,Huawei App Review 拒绝了我的申请
- sql - 在 BigQuery 上展平多个嵌套数组
- ios - 防止 ViewController 移回上一个
- python - 从 SQLite 数据库导出错误。Python
- selenium - WebDriverIO/Selenium:无法启动 chromedriver,出现错误,期望 Chrome 版本 90
- azure-data-factory-2 - 我们如何将 azure 数据工厂中的时区转换为指定的时区
- excel - 在单个按钮中运行功能的程序(1 个功能 = 1 次单击)
- python - 如何设计一个模块将2个张量转换为相同的形状?
- android - Android 中 MutlipartBody.Part 的 URL