如何在Dialogflow CX中请求进入指定自定义流程而非默认启动流程?
如何在Dialogflow CX中让会话直接进入自定义流程
方法1:调用DetectIntent API时指定目标流程
当通过API发起会话请求时,可以直接在请求参数中指定要进入的自定义流程起始页面,无需经过默认启动流程。
- 核心是在
queryParams中设置currentPage参数,值为目标流程起始页面的完整资源ID。 - 示例代码(Node.js):
const dialogflow = require('@google-cloud/dialogflow-cx'); const client = new dialogflow.SessionsClient(); async function startSessionInCustomFlow() { // 构建会话路径 const sessionPath = client.projectLocationAgentSessionPath( '你的项目ID', '你的区域(如us-central1)', '你的代理ID', '自定义会话ID' ); const request = { session: sessionPath, queryInput: { text: { text: '用户初始消息' }, languageCode: 'zh-CN' }, queryParams: { // 替换为自定义流程起始页面的资源ID currentPage: 'projects/你的项目ID/locations/你的区域/agents/你的代理ID/flows/自定义流程ID/pages/起始页面ID' } }; const [response] = await client.detectIntent(request); console.log('返回结果:', response.queryResult.responseMessages); }
- 获取资源ID的方式:在Dialogflow CX控制台打开目标流程的起始页面,点击右上角「显示资源名称」即可复制完整ID。
方法2:在默认启动流程中添加自动跳转路由
如果无法修改API调用逻辑,可以通过默认流程的路由规则,将会话直接导向自定义流程:
- 打开Dialogflow CX控制台,进入默认启动流程的「起始页面」。
- 添加新路由:
- 触发条件设为
true(表示无条件触发),或根据需求设置特定触发规则(如用户输入特定指令)。 - 目标选择「页面」,然后选中自定义流程的起始页面。
- 触发条件设为
- 保存配置并部署代理,此后用户发起的会话会自动从默认流程跳转到指定的自定义流程。
注意事项
- 确保自定义流程已创建完成,且起始页面配置了有效的响应或路由逻辑,避免会话中断。
- API调用时,需确保服务账号拥有
dialogflow.sessions.detectIntent的权限。 - 使用跳转路由时,避免设置循环跳转规则(如自定义流程又跳回默认流程)。
内容的提问来源于stack exchange,提问作者Emjay Ahn
相关产品推荐
相关产品推荐

