跳转到主要内容
上传一份健康文档,Mirobody 会将其解析进数据主体(Subject)的存储。PDF 和图片会经过 OCR;Excel / CSV 会按结构解析为健康记录。对话智能体随后会在作答时自动读取已上传的文件。
单文件上传上限 100 MB——超限返回 413。大导出/实时流请走 WebSocket 上传

上传并解析

响应:
文件的标识符是 id(一个含斜杠的键)—— 在下方的获取与列出调用中将其用作 {file_key}。上传响应上的 created_atepoch 秒。上传响应包含指标计数或摘要。
图片和 PDF 会被 OCR 为智能体可读的文本;结构化指标抽取是异步、尽力而为的。如需确定的结构化数据,请使用 POST /v1/data 或上传 CSV / Excel 文件。

列出文件

data 存放文件;subject 回显数据主体(Subject)。每一项都同时暴露 idfile_key(二者值相同)。created_atepoch 秒,与上传响应一致。

获取解析后的文本

返回单个文件解析后的文本 —— 与智能体所读取的内容一致:
abstract 可能为空(并非每种文件类型都会生成它)。

WebSocket 上传

大导出或实时采集可走 wss://…/v1/files/stream:单连接分块上传、带进度。鉴权走查询串(浏览器无法给 WebSocket 设 header):
帧序列(均为 JSON 文本帧):
  1. 服务端 → 你:{"type": "connection_established"} —— 收到前不要发任何东西。
  2. 你 → 服务端:{"type": "upload_start", "messageId": "<批次id>", "files": [{"filename", "contentType", "size"}]} —— 整批一个 messageId
  3. 你 → 服务端,每 256 KB 一块:{"type": "upload_chunk", "messageId", "filename", "chunk": "<base64>", "chunkIndex", "totalChunks"}
  4. 你 → 服务端:{"type": "upload_end", "messageId"} → 全部文件入库并解析完成后,服务端回 upload_end_response
单文件 100 MB 上限、Subject 隔离与 POST /v1/files 完全一致——用 GET /v1/files 可列出。

删除文件

立即将该文件从 API 表面移除(若不是该 Subject 的文件或已删除则返回 404):
有时限的上传也会通过 留存过期自动移除。如需一次性擦除某个 Subject 的全部数据,请使用 DELETE /v1/subjects/{user} —— 参见合规