Dialogflow CX中不使用@sys.any实体存储用户话语至参数的方法
在Dialogflow CX中无需@sys.any实体存储完整用户话语到参数的方法
利用系统变量直接赋值参数
Dialogflow CX内置了$request.text系统变量,它会直接返回用户的原始输入文本。你可以通过以下步骤将其存入自定义参数:- 进入目标开放问题页面的「参数」标签,点击「添加参数」,设置参数名称(如
user_full_input),类型选择「字符串」。 - 切换到「参数自动填充」标签,点击「添加填充规则」,在「参数值」输入框中填写
$request.text,触发条件保持默认(无需匹配任何实体)。 - 保存设置后,用户发送的任意内容都会自动存入该参数中。
- 进入目标开放问题页面的「参数」标签,点击「添加参数」,设置参数名称(如
通过Webhook捕获并存储输入
启用页面的Webhook调用,当用户发送消息时,Dialogflow CX会在Webhook请求中携带原始输入文本。你可以在Webhook代码中提取该文本并赋值给指定参数:
示例Node.js代码:exports.dialogflowWebhookHandler = (req, res) => { // 提取用户原始输入 const rawUserInput = req.body.text; // 赋值给自定义参数user_input req.body.sessionInfo.parameters.user_input = rawUserInput; // 返回更新后的会话信息 res.json({ sessionInfo: req.body.sessionInfo }); };提前在页面参数中创建
user_input参数,确保Webhook返回后参数能被正确更新。页面转换时传递输入内容
如果需要将用户输入携带到下一个页面,可在当前页面的「转换」规则中,把$request.text赋值给目标页面的对应参数。比如设置目标页面的user_query参数值为$request.text,跳转后即可在目标页面获取完整用户话语。
内容的提问来源于stack exchange,提问作者tharra lavanya
相关产品推荐
相关产品推荐

