You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在DialogFlow(Flask_DialogFlow后端)跨意图传递参数并跳过后续提问

实现DialogFlow跨意图传参并跳过参数询问的方案

要把drive.read.yes里的path参数传给transform.word2pdf.yes的word_path,同时避免机器人询问word_path,核心是用上下文传递参数+参数默认值绑定,具体步骤如下:

1. 配置上下文传递参数

  • 打开DialogFlow控制台,找到drive.read.yes意图,在输出上下文区域添加一个自定义上下文,比如命名为drive_path_collected,生命周期设为2(足够覆盖后续转换意图的触发即可)。
  • 在这个输出上下文的参数栏里,添加键值对:path: #drive.read.yes.path,意思是把当前意图的path参数存入这个上下文。
  • 接着找到transform.word2pdf.yes意图,在输入上下文区域添加刚才创建的drive_path_collected,确保该意图能识别到携带参数的上下文。

2. 设置word_path的默认值

  • 进入transform.word2pdf.yes的参数配置页,找到word_path参数,在默认值输入框里填写#drive_path_collected.path。
  • 这个格式的作用是:从名为drive_path_collected的上下文里读取path参数,作为word_path的默认值。只要上下文存在且包含该参数,DialogFlow就会自动填充word_path,不会触发参数询问。

3. Flask后端的辅助处理(可选)

如果需要在webhook里主动控制上下文传递,可以在drive.read.yes的处理函数中手动生成上下文:

from flask import Flask
from flask_dialogflow import Dialogflow, Response

app = Flask(__name__)
df = Dialogflow(app, '/webhook')

@df.intent('drive.read.yes')
def handle_drive_read(req):
    # 获取当前意图的path参数
    file_path = req.query_result.parameters.get('path')
    # 构造输出上下文,携带path参数
    custom_context = {
        "name": "drive_path_collected",
        "lifespanCount": 2,
        "parameters": {"path": file_path}
    }
    # 返回响应并带上上下文
    return Response(text="已获取文件路径,准备转换为PDF", contexts=[custom_context])

@df.intent('transform.word2pdf.yes')
def handle_word2pdf(req):
    # 直接获取已填充的word_path参数
    target_path = req.query_result.parameters.get('word_path')
    # 执行PDF转换逻辑
    return Response(text=f"正在转换文件 {target_path} 为PDF,请稍候...")

4. 验证配置

  • 确认transform.word2pdf.yes的word_path参数仍设为必填,因为默认值会优先覆盖必填校验,不会触发提问。
  • 测试对话流:触发drive.read → 回答路径 → 触发transform.word2pdf → 机器人直接进入转换逻辑,不再询问word_path。

内容的提问来源于stack exchange,提问作者Mujtaba Faizi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.22 19:03:28