如何在Dify中设计一个支持文件上传并能进行跨节点引用的工作流

雨芳同学_2052

雨芳同学_2052

2026-07-07

506人浏览

原创

必须将文件字段命名为uploaded_file,通过手动配置输入映射和显式声明输出字段(如parsed_text、file_metadata)实现跨节点引用,且避免使用保留字file/files作为输出名。

☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

如何在dify中设计一个支持文件上传并能进行跨节点引用的工作流

要在Dify中构建一个既能接收用户上传的文件、又能让工作流中不同节点彼此引用处理结果的自动化流程,必须绕过默认的单节点文件处理限制,通过手动配置节点输入和输出字段实现跨节点传递。

准备支持文件上传的触发节点

进入工作流画布,点击左上角「+ 添加节点」→ 选择「开始节点」→ 在右侧配置面板中,将「触发方式」设为「表单触发」。

在「表单字段」区域点击「添加字段」→ 类型选「文件」→ 字段名称填“uploaded_file”→ 勾选「允许多文件上传」(如需支持多个附件)→ 保存设置。

这一步是整个流程的入口前提,【文件字段必须命名为 uploaded_file,后续节点将依赖此精确字段名读取】。命名错误会导致下游节点无法获取文件对象。

配置文件解析节点并暴露输出字段

从「开始节点」拖出连线,接入「代码节点」或「知识库检索节点」(若需OCR/文本提取)→ 点击该节点,在右侧「输入」区域手动添加一条输入映射:Key 填 “file”,Value 填 `{{start.uploaded_file}}`。

如果是代码节点,编写Python逻辑读取 `file` 参数(它实际是包含 url、name、size 等属性的字典),调用 `requests.get(file['url'])` 下载内容,再做PDF解析或图像识别等操作。

关键一步:在该节点的「输出」配置区,点击「添加输出字段」→ 字段名设为 `parsed_text` → 值填 `{{code.output.text}}`(假设代码节点返回了text键)→ 再添加一个输出字段 `file_metadata` → 值填 `{{code.output.metadata}}`。

输出字段名必须显式声明,否则其他节点无法通过 `{{parse_node.parsed_text}}` 这类语法引用——Dify不会自动透出代码节点的任意返回值。

Dify Workflow DSL Expert
Dify Workflow DSL Expert

用于创建、编辑、调试或验证自托管 Dify 的工作流 DSL。首先从目标实例导出的工作流入手,进行最小化编辑。

下载

实现跨节点引用:让第三个节点调用前序结果

第一步:从解析节点拉出连线,接上一个新的「大模型节点」。

第二步:在该大模型节点的「提示词」编辑框中,直接插入变量引用:比如写“请基于以下材料回答问题:{{parse_node.parsed_text}}。原始文件名是{{parse_node.file_metadata.filename}}。”

第三步:检查右侧「输入」区域,确认没有手动覆盖 `parse_node.parsed_text` 的映射——如果这里误写了 `input_text: {{start.uploaded_file}}`,会覆盖掉你真正想用的解析后文本。

第四步:运行测试时,上传一个含表格的PDF,观察大模型节点是否收到结构化文本而非二进制乱码——若收到的是URL字符串而非解析后文字,说明代码节点未正确返回 `text` 字段或输出映射名不匹配。

补充:让同一份文件被多个分支同时消费

方法一:从「开始节点」直接拉出多条线,分别连到「代码节点A」和「代码节点B」,两个节点都配置 `file: {{start.uploaded_file}}` 作为输入。这样两个分支各自独立处理原始文件,互不干扰。

方法二:若需先统一预处理再分发,可在第一个代码节点完成基础解析后,在其「输出」中新增字段 `raw_content`,值为 `{{code.output.content}}`;后续所有分支节点均引用 `{{preprocess_node.raw_content}}`,避免重复下载和解析。

注意:Dify不允许节点输出字段名为 `file` 或 `files`,这类保留字会导致引用失败,改用 `uploaded_doc` 或 `source_blob` 等自定义名更安全。

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

dify dify工作流

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
Dify 本地部署与企业配置
Dify 本地部署与企业配置

本专题系统讲解 Dify 从零开始的本地部署方法与企业环境配置实践,涵盖 Docker 安装、依赖准备、数据库初始化、反向代理、参数调优、安全加固与多用户开通,帮助开发者与企业团队快速搭建稳定可用的 Dify 平台。

2026.06.05

577

15

Dify Agent智能体开发实战教程
Dify Agent智能体开发实战教程

本专题聚焦 Dify Agent 智能体的设计与开发,涵盖 Agent 模式选择、工具集成、提示词设计、多步推理、上下文记忆与多 Agent 协作,帮助开发者构建可执行复杂业务任务的智能体应用。

2026.06.05

225

15

Dify RAG知识库构建实战教程
Dify RAG知识库构建实战教程

本专题围绕 Dify RAG 知识库的全流程实践展开,从文档导入、分段切片、向量化到混合检索、重排优化与召回评估,帮助你打造高准确率、低幻觉的企业知识问答应用。

2026.06.05

216

15

LLVM自定义Pass怎么写
LLVM自定义Pass怎么写

本专题聚焦LLVM自定义Pass开发,整理Pass类结构、run()方法、PreservedAnalyses、CMake构建、插件注册、-load-pass-plugin加载和测试用例编写流程。

2026.09.30

120

10

LLVM RISC-V参数配置教程
LLVM RISC-V参数配置教程

本专题介绍LLVM对RISC-V基础ISA和扩展的支持方式,涵盖RV32、RV64、标准扩展、实验性扩展、厂商扩展、-menable-experimental-extensions和版本差异。

2026.09.30

100

14

LLVM IR中间表示入门指南
LLVM IR中间表示入门指南

本专题整理LLVM IR的核心概念,包括中间表示作用、模块结构、函数、基本块、SSA形式、类型系统和常见语法,帮助新手理解LLVM编译流程中的关键层。

2026.09.30

80

12

PDF转图片方法
PDF转图片方法

需要把 PDF 页面用于上传、预览、分享或图片归档时,PDF 转图片方法专题整理 JPG/PNG 格式选择、逐页导出、清晰度设置、批量下载和结果检查等流程,帮助用户稳定完成 PDF 图片化处理。

2026.09.30

60

26

PixTV AI视频生成与无限画布创作
PixTV AI视频生成与无限画布创作

PixTV专题整理AI视频与视觉内容创作相关功能使用教程,涵盖AI生图、视频生成、无限画布、多模型创作、素材管理、声音音乐及视频剪辑等功能,帮助用户快速掌握PixTV从创意到成片的完整制作方法。

2026.09.29

80

15

Buffalo框架数据库开发全教程
Buffalo框架数据库开发全教程

本专题围绕Buffalo框架数据库开发,讲解database.yml多环境配置、soda与fizz迁移生成回滚、模型结构体标签、增删改查与条件查询、一对多与多对多关联、数据校验、回调钩子、事务处理及原生SQL执行能力。

2026.09.23

280

15

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Dify零基础教程
Dify零基础教程

共0课时 | 147人学习

学习Agent,从Dify开始
学习Agent,从Dify开始

共0课时 | 142人学习

Dify 部署与运维指南
Dify 部署与运维指南

共0课时 | 0人学习