5月29日 00:25

Dify 支持哪些类型的输入输出格式?如何自定义数据处理逻辑?

Dify工作流的输入支持:文本(短文本/段落)、结构化数据(下拉选择/数字/复选框/JSON)、文件上传(PDF/Word/TXT/Markdown,也支持图片和音频)。输出默认为LLM生成的文本,可配置为结构化JSON(通过JSON Schema约束)。自定义数据处理有三种方式:代码节点直接写Python/Node.js脚本做数据转换、JSON拼接、算术运算;模板节点用Jinja2语法灵活格式化输出文本;变量赋值节点对字符串/数字/数组进行覆盖、追加、扩展等操作。此外参数提取器能用LLM从自然语言中推理出结构化参数,迭代节点支持对数组批量处理。自定义工具还可通过OpenAPI/Swagger规范接入外部API。

追问

  • 代码节点和模板节点分别适合什么场景?性能差异大吗?
  • 参数提取器如何保证提取结果的结构化可靠性?提示词怎么写?
  • 文件上传后Dify内部怎么处理?PDF解析用的是哪个库?
  • 迭代节点处理大数组时有没有并发或超时限制?
  • 自定义工具的OpenAPI Schema最大能定义多少个接口?

写段代码

python
# Dify代码节点:提取关键字段并格式化 import json def main(input_text: str) -> dict: result = { "length": len(input_text), "summary": input_text[:100] } return {"result": json.dumps(result, ensure_ascii=False)}
标签:Dify