如何在Voximplant中直接向Dialogflow CX传递参数
向集成Dialogflow CX的Voximplant应用传递参数的操作方法
你可以通过以下几种方式在Voximplant应用中直接向Dialogflow CX传递参数:
1. 初始化Dialogflow CX会话时传入初始参数
在调用DialogflowCX.init方法初始化会话时,通过initialParameters选项传入初始参数,这些参数会直接进入Dialogflow CX的会话上下文:
// 定义要传递的初始参数 const initialParams = { user_region: 'Shanghai', membership_level: 'gold' }; // 初始化Dialogflow CX会话并传入参数 DialogflowCX.init('你的项目ID', '区域', '代理ID', { initialParameters: initialParams }) .then(() => { // 会话初始化完成,可继续后续交互 }) .catch(error => { // 处理初始化错误 });
2. 发送文本消息时附带参数
使用DialogflowCX.sendText方法发送用户消息时,通过parameters选项传递参数,参数会被添加到当前会话的上下文:
// 定义要传递的参数 const messageParams = { order_id: 'ORD-20240501', user_contact: '138xxxx1234' }; // 发送文本并附带参数 DialogflowCX.sendText('我要查询订单状态', { parameters: messageParams }) .then(response => { // 处理Dialogflow CX返回的响应 }) .catch(error => { // 处理发送错误 });
3. 发送自定义事件时传递参数
如果需要通过事件触发Dialogflow CX的流程,可以用DialogflowCX.sendEvent方法,直接将参数作为事件的 payload 传递:
// 定义事件对应的参数 const eventParams = { coupon_code: 'SAVE20', purchase_amount: 199 }; // 发送自定义事件并传递参数 DialogflowCX.sendEvent('apply_coupon', eventParams) .then(response => { // 处理事件触发后的响应 }) .catch(error => { // 处理事件发送错误 });
Dialogflow CX端的参数接收配置
在Dialogflow CX控制台中,你需要做以下配置来确保参数能被正确识别和使用:
- 若传递的参数需要被意图引用,在对应意图的「参数」标签页中添加同名参数,设置参数类型和提取方式。
- 若通过自定义事件传递参数,在Dialogflow CX的「事件」菜单中创建对应事件,并在事件的「参数」部分定义传入的参数名和类型。
- 所有传递的参数都会存储在会话上下文中,你可以在意图响应、webhook请求中通过
$参数名的形式直接调用。
内容的提问来源于stack exchange,提问作者user19933337
相关产品推荐
相关产品推荐

