Skip to main content

文件上传

MimirQ 通过 multipart/form-data 接口上传文档,支持 PDF、Office、纯文本等格式。大文件场景可使用预签名 URL 直传对象存储。

multipart/form-data 上传

基本示例

curl -X POST "$BASE_URL/api/v1/documents/upload" \
-H "Authorization: Bearer $TOKEN" \
-F "file=@document.pdf" \
-F "dataset_id=$DATASET_ID"
字段名

file 等表单字段名必须与 Redocdocuments 分组的定义严格一致。使用错误的字段名会返回 400 或 415。

Content-Type 注意事项

  • 使用 curl -F 时 Content-Type 自动设置为 multipart/form-data
  • 不要手动设置 Content-Type Header,否则 boundary 参数会丢失
  • 编程语言中使用对应的 multipart 库(如 Python requestsfiles 参数)
import requests

resp = requests.post(
f"{BASE_URL}/api/v1/documents/upload",
headers={"Authorization": f"Bearer {token}"},
files={"file": ("document.pdf", open("document.pdf", "rb"), "application/pdf")},
data={"dataset_id": dataset_id}
)

大文件处理

体积限制

上传体积受双重约束

层级配置项典型默认值
反向代理Nginx client_max_body_size100M
后端应用应用配置以部署文档为准
tip

如果上传返回 413(Request Entity Too Large),优先检查反向代理配置。

预签名 URL 上传

对于大文件,部分部署支持预签名 URL 直传对象存储:

具体路径(如 upload-urlbatch-upload)以 OpenAPI 定义为准。

批量上传

多文件上传建议:

  • 串行上传,每次一个文件,避免并发过高导致 429
  • 记录每个文件的 document_id,批量轮询状态
  • 失败文件单独重试,不影响已成功的文件

排障

状态码原因解决方案
400字段名错误或缺少必填参数对照 Redoc 检查字段名
413文件超过代理/应用限制调整 client_max_body_size
415不支持的文件格式确认文件 MIME 类型
422参数校验失败检查 dataset_id 等字段

相关链接