【实战】Dify从0到100进阶--文档解读(10)参数提取&HTTP节点_dify参数提取器使用方法

参数提取节点(Parameter Extractor Node)
定义
参数提取节点利用 LLM 的理解与推理能力,将自然语言或非结构化文本中的关键信息抽取成结构化参数,供后续工具调用、HTTP 请求或流程分支使用。
核心功能
- 自然语言解析:从对话或文本中推理出需要的字段值(如日期、ID、关键词)。
 - 结构化输出:将提取结果映射为声明的输出变量,并附带提取状态与原因。
 - 工具集成:可快捷导入现有工具的参数定义,无缝连接工具调用节点。
 - 灵活指令:支持示例引导和 Prompt/Function Call 两种推理方式,优化复杂场景表现。
 
支持场景
- 精确检索:从用户输入中提取 Arxiv 论文编号或作者,用于论文检索工具调用。
 - 批量处理准备:将自由格式的章节列表转换为数组,作为迭代节点的输入。
 - 动态 API 调用:提取天气城市、日期等参数,并调用 HTTP 请求节点获取外部数据。
 - 工具参数收集:在对话中自动收集邮箱、文件名、路径等信息,用于文件操作工具或通知工具。
 
配置指南
1. 选择输入变量
- 在节点配置中挑选包含自然语言或待提取文本的变量(例如 
${userQuery}、${responseText})。 
2. 定义输出参数
- 可手动添加字段:点击“新增参数”,配置 
名称、类型(String、Number、Array、Object 等)、必填。 - 导入工具参数:一键引入下游工具节点所需参数,保证类型与命名一致。
 
3. 填写指令模板
- 在“指令”区域,描述提取逻辑与示例:
从以下用户输入中提取论文编号(id)或作者名(author)。示例: 输入:\"2405.10739 这篇论文讲了什么内容?\" 输出:{\"id\": \"2405.10739\"} - 对复杂场景可编写多组示例,提高模型稳定性。
 
4. 选择推理模式
- Function/Tool Call:优先尝试结构化函数调用(兼容多数模型);
 - Prompt:仅使用提示词推理,可在函数调用效果欠佳时备用。
 
5. 高级设置
- 记忆:开启后注入对话历史,提升连续对话的上下文理解。
 - 图片支持:提取文本中嵌入的图片描述或 URL。
 
输出变量
__is_success__reason典型示例
示例 1:Arxiv 论文检索
- 
用户输入:
\"请帮我查一下这篇论文:2405.10739 的摘要。\" - 
参数提取器输出:
{ \"id\": \"2405.10739\", \"__is_success\": 1, \"__reason\": \"\"} - 
HTTP 请求节点调用:
GET https://export.arxiv.org/api/query?id_list={{id}} 
示例 2:章节数组生成
- LLM 节点输出长文段落:
\"第一章:… 第二章:… 第三章:…\" - 参数提取器配置:参数名 
sections类型Array[String],示例将段落分割。 - 输出 
sections = [\"第一章:…\",\"第二章:…\",\"第三章:…\"],供迭代节点使用。 
调试与最佳实践
- 提供多样示例:覆盖不同表述、异常情况,提升提取健壮性。
 - 校验 
__is_success:下游逻辑可根据此字段进行分支或错误处理。 - 结合模板/代码节点:对提取结果再做二次加工或格式化。
 
HTTP 请求节点(HTTP Request Node)
定义
HTTP 请求节点允许工作流向外部服务器发送任意 HTTP 请求,实现与第三方 API 或资源的交互。通过自定义请求方法、URL、请求头、查询参数、请求体及认证信息,您可以动态获取数据、触发 Webhook、上传/下载文件等。
支持功能
- 
请求方法:GET、POST、PUT、PATCH、DELETE、HEAD 等常见 HTTP 方法。
 - 
URL & 查询参数:静态或使用变量
${}动态构建 URL 与查询字符串。 - 
请求头:自定义 Header,如
Authorization、Content-Type等。 - 
请求体:
- JSON/Form:可插入结构化变量(Array/Object/String)。
 - Binary 文件:在 
binary区域选中文件变量,用于文件上传。 
 - 
认证:支持 Basic Auth、Bearer Token、API Key 等常见认证方式。
 - 
文件处理:自动将响应中的文件保存为流程变量,后续节点可直接引用。
 - 
动态变量:请求配置中可任意引用上游变量,实现请求参数的动态化。
 
常见场景
- 数据抓取:GET 某开放 API,获取实时天气、股价、新闻等。
 - 表单提交:POST 表单数据到服务器或第三方服务接口。
 - 文件上传:PUT 上传 PDF、图像等文件到文件存储或文档管理服务。
 - Webhook 调用:触发远程 Webhook 来通知业务系统或执行其他流程。
 - 动态内容生成:调用图片生成、文档转码等在线服务。
 
配置要点
- 
选择方法 & URL:在 Method 下拉选择 HTTP 方法,在 URL 输入框填入目标地址,可使用
${variable}引用变量。 - 
设置请求头:点击“新增 Header”,配置 Key/Value,支持变量替换。
 - 
配置查询参数:在 Query Params 列表中填写参数名与对应变量。
 - 
构建请求体:根据 API 要求选择 JSON、Form 或 Binary:
- JSON:在 Body 区域输入 JSON 模板,支持 Jinja2 变量。
 - Form:逐个添加表单字段和值。
 - Binary:选中文件变量,自动将文件以二进制形式上传。
 
 - 
认证配置:在 Auth 面板选择认证类型,填写凭据或 Token。
 - 
输出处理:请求完成后,节点会生成:
statusCode(Number)headers(Object)body(String/Object,自动 JSON 解析)file(File,当响应为文件时)
 
高级功能
错误重试
- 开启重试:启用后,节点在遇到网络抖动或临时错误时会自动重试。
 - 配置项:最大重试次数(默认 3,可设至 10);重试间隔(毫秒)。
 
异常处理
- 启用异常分支:在节点配置开启“异常处理”,可针对超时、4xx/5xx 响应定义分支策略。
 - 自定义流程:可将错误结果导入专用 LLM、通知或日志记录节点中,避免流程中断。
 
示例:客户评价系统
- 
用户输入:
customerId = 12345,comment = \"服务非常好!\" - 
HTTP 请求节点:
- 
Method:POST
 - 
URL:
https://api.example.com/feedback - 
Body (JSON):
{ \"id\": \"${customerId}\", \"comment\": \"${comment}\"} 
 - 
 - 
下游节点:根据
statusCode判断是否成功,若失败则走异常分支提示用户重试。 


