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

在Dify工作流中添加One-shot提示遇变量问题,求解决方案

问题解答

思路正确性

你的思路完全没问题。One-shot提示通过提供样本输入输出,能让模型明确理解结构化信息的提取规则和格式要求,大幅降低发票信息提取的歧义,非常适配这类场景。

解决方法

1. 调整样本文件的使用方式(核心方案)

不要将样本文件设置为工作流启动时的用户输入变量,而是作为工作流的内部静态资源处理:

  • 在Dify工作流中添加「文件读取」节点,直接上传你的样本PDF和样本JSON文件,将它们作为工作流内置的固定资源;
  • 对样本PDF执行和目标PDF完全一致的「文本提取」操作,得到样本文本内容;
  • 按照One-shot提示的格式,将样本文本、样本JSON与目标PDF提取的文本拼接成模型的输入prompt,示例格式如下:
    请从发票文本中提取发票ID、客户参考编号信息,严格返回JSON格式:
    样本输入:
    [样本PDF提取的文本内容]
    样本输出:
    {"发票ID": "INV-2024-001", "客户参考编号": "REF-12345"}
    
    目标文本:
    [目标PDF提取的文本内容]
    
  • 将拼接后的完整prompt传递给Ollama模型即可。

2. 排查“文件必填”/“类型未知”错误的具体原因

如果坚持要把样本设为变量(不推荐),需注意:

  • 确保变量类型设置为「文件」,且在工作流节点中先完成文本提取操作,再将提取后的内容传递给模型,不能直接把原始文件对象传给模型(模型无法识别未解析的文件);
  • 检查工作流的节点输入输出映射,确认样本文件的处理结果已正确关联到模型节点的输入字段,没有出现未解析的变量引用。

3. 简化替代方案

如果样本内容固定无需频繁更新,可直接将样本提取后的文本和样本JSON复制粘贴到模型的prompt模板中,完全跳过文件变量的配置,操作更简单高效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 15:45:57