【Dify】Apifox接口测试:文件上传并分析调用的问题+解决方式

一、介绍

当你在Dify控制台调配完并且发布应用后,使用Apifox或Postman等接口测试工具发送api接口请求进行测试时,可能会遇到类似“ file in input form must be a file ”的问题:

接下来我将详细分析解决方式,实现文件上传和解析并且回复的步骤。

二、步骤

1. 获取文件id

在测试dify的上传文件并分析文件的接口功能时,需要先通过上传文件获取文件的id。

鉴权:

请求方式POST,请求URL和接口名以及请求体:

发送得到响应,并复制文件id:

2. 发送消息,编写请求体

发送携带文件id的消息(之前上传的文件被记录在dify服务器中,通过id唯一确定)

如果你通过dify提供的请求体示例,会出现400报错,那么,你就需要更换合适的可行的请求体。

下面就是可以使用的请求体格式内容:

{
  "inputs":{
    "file":{
      "transfer_method":"local_file",
      "upload_file_id":"a930cf8c-c5c7-4412-8950-bdfe41f91c27",
      "type":"document"
    }
  },
  "query": "帮我优化简历",
  "response_mode":"blocking",
  "user":"test-user-001"
}

3. 各个参数的详细分析:

a. 顶层核心参数
参数名类型含义 & 详细说明
inputs对象任务的输入参数集合,Dify 中所有 “变量型输入”(如文件、文本参数)都放在这个对象下
query字符串用户的核心指令 / 问题,即让 AI 执行的具体任务(此处为 “帮我优化简历”)
response_mode字符串响应模式,控制 Dify 如何返回结果
user字符串唯一用户标识,用于 Dify 区分不同用户、关联会话 / 文件权限、统计用量等
b.inputs 子参数(文件上传核心)

inputs 是键值对结构,其中 file 是自定义的 “文件变量名”(可自定义,比如 resume_file),对应的值是文件上传的元信息:

file 下的子参数类型含义 & 详细说明
transfer_method字符串文件传输方式,可选值:✅ local_file:本地文件(已上传至 Dify 存储,通过 ID 引用)❌ url:通过 URL 拉取文件(如公网文件链接)❌ base64:文件的 Base64 编码字符串
upload_file_id字符串文件上传后 Dify 生成的唯一 ID(核心):- 用户上传文件时,Dify 会先返回该 ID(如 a930cf8c-c5c7-4412-8950-bdfe41f91c27)- 后续请求通过该 ID 引用已上传的文件,避免重复上传
type字符串文件类型分类,Dify 用于识别文件用途 / 格式,常见值:✅ document:文档(简历、PDF、Word 等)❌ image:图片❌ audio:音频❌ video:视频
c. 关键参数补充说明
1. response_mode(响应模式)

此处值为 blocking(阻塞模式),是最常用的模式,其他可选值:

  • blocking同步阻塞,等待 AI 处理完成后一次性返回结果(适合短任务,如简历优化);
  • streaming流式响应,逐字返回结果(适合长文本生成,如写文章);
  • callback异步回调,Dify 处理完成后调用用户指定的回调 URL 返回结果(适合超长时间任务)。
2. user(用户标识)
  • 格式:通常是业务侧的用户 ID(如 test-user-001),需保证唯一;
  • 作用:
    • Dify 基于该 ID 隔离不同用户的会话、文件、历史记录;
    • 用于用量统计、权限控制(如限制单个用户的文件上传数量);
    • 避免不同用户的文件 / 任务混淆。
3. upload_file_id 生成逻辑
  1. 用户先调用 Dify 的「文件上传接口」,上传本地文件(如简历 PDF);
  2. Dify 接收文件后,存储到自身服务器 / 对象存储(如 S3),并返回一个唯一的 upload_file_id
  3. 用户在本次请求中携带该 ID,Dify 即可根据 ID 找到对应的文件,结合 query 指令(优化简历)进行处理。

4. 完整流程梳理

  1. 文件上传:用户调用 Dify 文件上传接口 → 上传简历文件 → Dify 返回 upload_file_id: a930cf8c-xxx
  2. 提交任务:用户构造你提供的 JSON 请求 → 携带 upload_file_idquery: 帮我优化简历user: test-user-001
  3. Dify 处理
    • 根据 user 验证用户权限;
    • 根据 upload_file_id 读取简历文件内容;
    • 执行 query 指令(AI 分析简历、优化内容);
    • 按 response_mode: blocking 同步返回优化后的简历结果。

5. 结果展示

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值