Dify 中级实验(01):参数提取器实战——如何从自然语言中提取结构化数据?
Dify 中级实验01参数提取器实战——如何从自然语言中提取结构化数据Dify 实验系列 · 中级 01/20 | 实验编号DIFY-102-021. 实验目的掌握Parameter Extractor参数提取器节点的使用——从自然语言中自动提取结构化字段为后续的数据库操作、API 调用、条件判断提供精准的结构化输入。这是 Dify 工作流里最常用的节点之一任何「用户说人话、系统要结构化」的场景表单预填、工单录入、搜索参数解析都靠它。2. 场景设计构建一个「简历筛选助手」用户用自然语言描述候选人系统提取出结构化字段姓名、年龄、技能、经验年限、期望薪资、学历再根据字段做筛选判断。输入用户描述张三28岁计算机本科毕业 5 年精通 Python、Java、SQL目前在 BAT 做后端开发期望薪资 25K-30K输出结构化 筛选意见{name:张三,age:28,skills:[Python,Java,SQL],experience_years:5,expected_salary:27500,education:本科}3. 节点拓扑开始resume_text ↓ 参数提取Parameter Extractor6 字段 ↓ 校验提取结果Code完整性校验 ↓ 校验结果判断IF-ELSE ├── 通过 → 生成筛选意见LLM→ 结束 └── 不通过 → 结束提示补充信息4. 关键配置4.1 开始节点resume_text变量类型必须选「段落」paragraph而不是「文本框」text-input——简历描述是长文本text-input 有 48 字符输入限制粘贴一段简历直接报错-label:简历描述max_length:10000required:truetype:paragraphvariable:resume_text 这是同批实验里踩过的真实坑长文本/JSON 粘贴类变量用 paragraph 显式max_length: 10000否则 Service API 报must be less than 48 characters。4.2 参数提取节点核心配置 6 个提取参数query:[start,resume_text]parameters:-name:name# 候选人姓名type:stringrequired:true-name:age# 候选人年龄type:numberrequired:false-name:skills# 技能列表type:array[string]required:true-name:experience_years# 工作经验年type:numberrequired:true-name:expected_salary# 期望薪资元/月type:numberrequired:false-name:education# 最高学历type:stringrequired:false要点必填字段给足描述——参数描述直接影响 LLM 提取准确率描述含糊 → 提取错金额类期望薪资用 number让 LLM 把「25K-30K」归一为数值取 275004.3 校验节点Code参数提取偶尔会漏字段用代码节点做完整性校验返回valid标志 缺失项提示defmain(name:str,age:str,skills:list,experience_years:str,expected_salary:str,education:str)-dict:missing[]ifnotname:missing.append(姓名)ifnotskills:missing.append(技能)ifnotexperience_years:missing.append(工作经验)return{valid:falseifmissingelsetrue,missing_fields:、.join(missing)ifmissingelse,summary:f{name}{experience_years}年经验技能{, .join(skillsor[])}} boolean 必须展平为 stringtrue/false——Dify 的 object/boolean 类型在节点间不可见IF-ELSE 判断的是字符串。5. 运行验证输入上面的简历描述预期参数提取返回 6 个结构化字段skills 是数组校验节点validtrueLLM 生成筛选意见结合经验年限/技能与岗位匹配度实测结果完整简历 → 提取 6 字段全中 → 筛选意见输出正常缺技能描述的简历 →validfalse→ 走提示分支。6. 采坑点坑现象修复start 变量用 text-input长简历粘贴报「must be less than 48 characters」改 paragraph max_length: 10000校验结果 boolean 直出IF-ELSE 判断不到类型不可见展平为 string “true”/“false”PE 提取字段描述含糊LLM 提取错/漏字段每个字段写清楚业务描述7. 实验文档及源码获取实验文档完整操作步骤DIFY-02参数提取——从非结构化到结构化.md源码可直接导入dify102_02_简历参数提取器.yml文章聚焦核心配置与采坑点实验的完整分步操作节点搭建/参数表/调试指引见实验文档原文。下一篇Dify 中级实验02问题分类器——智能路由引擎如何四路分发