一、介绍
当你在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 生成逻辑
- 用户先调用 Dify 的「文件上传接口」,上传本地文件(如简历 PDF);
- Dify 接收文件后,存储到自身服务器 / 对象存储(如 S3),并返回一个唯一的
upload_file_id; - 用户在本次请求中携带该 ID,Dify 即可根据 ID 找到对应的文件,结合
query指令(优化简历)进行处理。
4. 完整流程梳理
- 文件上传:用户调用 Dify 文件上传接口 → 上传简历文件 → Dify 返回
upload_file_id: a930cf8c-xxx; - 提交任务:用户构造你提供的 JSON 请求 → 携带
upload_file_id、query: 帮我优化简历、user: test-user-001; - Dify 处理:
- 根据
user验证用户权限; - 根据
upload_file_id读取简历文件内容; - 执行
query指令(AI 分析简历、优化内容); - 按
response_mode: blocking同步返回优化后的简历结果。
- 根据
5. 结果展示


754

被折叠的 条评论
为什么被折叠?



