产品白皮书及接入指南

版本:v1.2.0

文档导读

第一部分:产品篇 (Product Capabilities)

1. 产品概述

本产品是一款高性能的非结构化文档数据提取服务。它能够将不可编辑、难以分析的PDF 文档图片,自动转换为机器可读、易于编辑的结构化数据(如 Excel、HTML、Markdown)。

系统采用异步智能处理机制,专为处理计算密集型的大型文档设计,支持高并发任务排队,确保在处理数百页财报或复杂文档时的稳定性。

核心价值

2. 核心功能详解

本系统包含两大核心业务模块:财报解析 (Finance OCR)通用文档解析 (DocParse)

2.1 模块一:智能财报解析 (Finance OCR)

专为金融场景设计,解决财务报表数据提取难、对齐难的问题。支持从图像和 PDF 中提取表格数据,并进行语义理解。

2.1.1 适用场景

2.1.2 处理能力

2.1.3 数据输出模式

为了满足不同业务需求,系统提供三种数据输出标准:

模式名称 业务含义 适用场景
基础模式 原样提取 和原文内容一一对应的结构,不做过多处理。
归一化模式 会计语义理解 需要系统自动识别会计科目(如将“货币资金”标准化),并进行借贷平衡校验。
矩阵模式 Excel 映射 强烈推荐。系统将表格数据整理为二维数组,开发人员可直接将其导出为 Excel 文件,完美保留行列结构。

2.2 模块二:通用文档解析 (DocParse)

适用于通用的文档数字化场景,旨在将 PDF 还原为“可编辑文档”。

2.2.1 核心能力

2.2.2 输出格式支持

2.3 任务生命周期管理

由于解析复杂文档(如 OCR 识别)需要时间,系统提供完整的任务状态管理:

  1. 提交任务:上传文件,系统立即返回“受理成功”。
  2. 排队与处理:系统后台自动调度资源进行计算。
  3. 结果获取:处理完成后,用户提取结果。
  4. 人工修正(可选):支持业务人员对解析结果进行在线修正,并保存为“修订版数据”,用于后续模型优化。

这是非常关键的技术补充。细化私有化部署的架构和资源需求,不仅能展现产品的技术成熟度,还能直接打消客户(特别是IT部门)关于“资源消耗过大”或“部署复杂”的顾虑。

我将根据您提供的架构信息(3B/0.9B 模型、微服务架构、模型共用特性),为您重新撰写“4. 部署与服务模式”这一章节。


3. 部署与服务模式 (Deployment & Service Models)

为了满足不同客户对数据安全、合规性及成本控制的需求,我们提供灵活的公有云与私有化部署方案。

3.1 SaaS 公有云服务

3.2 私有化部署 (On-Premise)

私有化方案采用模块化设计,客户可按需部署:

A. 智能财报解析模块 (Finance OCR Deployment)

该模块采用先进的微服务架构多模态模型级联技术

B. 通用文档解析模块 (DocParse Deployment)

C. 推荐资源配置与信创支持 (入门级)

得益于深度的工程优化,系统在保持全精度推理的同时,将硬件门槛控制在合理范围。同时,针对特定行业的国产化需求,系统架构具备良好的兼容性与迁移能力。

1. 标准生产环境配置 (Standard) 基于主流通用架构(NVIDIA 生态),推荐如下配置以满足 日均 10,000+ 页 的解析需求:

资源类型 推荐规格 说明
GPU (显卡) NVIDIA A10 (24GB)L4 × 1 推荐 24GB 显存起步。系统运行多模态大模型与辅助模型组,需预留充足显存以支持高分辨率图像处理及并发推理的动态显存需求(KV Cache)。
CPU Intel / AMD (16 Core+) 承载微服务及 OCR 前后处理。
内存/存储 64GB RAM / 500GB SSD 保障高并发下的数据流转与模型加载。
运行环境 Docker / Kubernetes 需安装 NVIDIA Container Toolkit。

2. 信创化改造支持说明 (Localization Capabilities) 针对金融、政务等领域的国产化替代需求,本系统底层架构支持向信创环境迁移与适配改造。

:信创环境涉及底层算子与驱动的深度调试,具体适配方案需根据客户实际采购的硬件设施进行专项评估与部署实施。

第二部分:技术篇 (Developer Integration Guide)

4. 接口与安全规范

4.1 鉴权认证

在所有 API 请求的 Header 中需携带分配的 Secret Key (SK):

Authorization: Bearer sk-xxxxxxxxxxxxxxxxxxxx

5. 快速接入流程 (异步机制)

由于财报解析属于计算密集型任务,系统采用异步处理机制。标准调用流程如下:

sequenceDiagram
    participant Client as 客户端
    participant Server as 服务端

    Client->>Server: POST /api/tasks (上传文件)
    Server-->>Client: 返回 task_id (Status: pending)

    loop 轮询状态
        Client->>Server: GET /api/tasks/detail/{task_id}
        Server-->>Client: 状态: processing
    end

    Client->>Server: GET /api/tasks/detail/{task_id}
    Server-->>Client: 状态: done, 返回 result (JSON/Matrix)
  1. 创建任务:调用 /api/tasks 上传文件,获取 id (即 task_id)。
  2. 轮询状态:使用 id 定期调用 /api/tasks/detail/{task_id} 检查 status
  3. 状态流转: pending (排队) -> processing (处理中) -> done (完成) 或 failed (失败)。
  4. 获取结果:当 statusdone 时,响应体中的 resultrevised_result 字段即为解析数据。

6. 接口详情

6.4.0 快速开始 (Quick Start)

6.4.0.1 PDF 转 Markdown

将 PDF 文件解析并转换为 Markdown 格式,保留基础文本结构与表格内容。 pdf2md.py

6.4.0.2 PDF 转 PPTX

将 PDF 文件按页转换为 PPTX 幻灯片,支持文本提取或页面图片渲染方式生成演示文稿。 pdf2pptx.py

6.4.1 创建解析任务 (Create Task)

上传文件并发起解析任务。

请求参数 (Body):

参数名 类型 必选 描述
file File 需要解析的文件流。
1. 图片: 支持常规格式 (jpg, png等)
2. PDF: 文件大小不超过 50MB
task_type String 任务类型,默认为 finance_ocr (财报解析),docparse(文档解析)。
file_name String 文件名(建议包含扩展名)。
task_param String 扩展参数 (JSON字符串)。

响应示例 (200 OK):

{
  "id": "b7b08f2e-d559-44b0-88e5-6b56eef6c227",
  "task_name": "report.pdf",
  "file_id": "5c3ded47-...",
  "status": "pending",
  "task_type": "finance_ocr",
  "user_id": "admin",
  "created_at": "2025-12-19T14:00:00",
  "message": null
}

6.4.2 获取任务详情/结果 (Get Task Detail)

根据任务ID查询当前状态或获取最终解析结果。

路径参数:

参数名 类型 必选 描述
task_id String 任务唯一标识

查询参数 (Query):

参数名 类型 必选 描述
result_type String 财报解析和文档解析都不同的结果数据类型。
参数名 类型 必选 描述
extra_info String 文档解析存在两个版本,v1、v2两个版本的内容不一样,用户可以通过指定返回的版本信息得到解析结果

6.4.2.1 文档解析获取任务详情/结果

查询参数 (Query):

参数名 类型 必选 描述
result_type String 结果类型控制。
- 空 (默认): 基础模式。
- md: markdown全文。
- html: html格式。
- block_md: Markdown数据块列表格式。
- docx: word格式。

响应字段逻辑说明:

通用文档解析包含两个版本v1、v2

解析结果包含 resultrevised_result 字段,其结构根据 result_type 的不同而显著变化:

  1. result_type 为空 (默认)

  2. result 字段:null

  3. revised_result 字段:null
  4. 返回基础解析结果和参考文件链接,不包含特定格式的内容

  5. result_typemd

  6. result 字段:null

  7. revised_result 字段:包含完整的Markdown格式文档内容,默认显示v1版本的内容。
  8. 返回纯文本形式的Markdown内容,保持原文档的结构和格式

  9. result_typehtml

  10. result 字段:null

  11. revised_result 字段:包含完整的HTML格式文档内容,默认显示v1版本的内容。

  12. 返回结构化的HTML内容,保留原文档的布局和样式信息

  13. result_typeblock_md 

  14. result: null

  15. revised_result: 包含块状结构的文档内容,默认显示v1版本的内容。
    • blocks: 数组,每个元素包含:
    • type: 块类型(如"paragraph")
    • content: 块内容
    • location: 位置信息,包含:
      • page_number: 页码
      • bbox: 边界框坐标 [x1, y1, x2, y2]
    • metadata: 包含文档元数据(页数、块总数等)           

响应示例(200 OK - result_type=默认):

{
  "id": "93538828-80f9-474b-9db3-b194f33018dd",
  "task_name": "0eea3c57-4934-744b-b0ea-0cdb277743ca_29",
  "file_id": "ce6a42f5-3b2b-4e28-9534-c2ebeed393b1",
  "file_url": "https://insightdoc.memect.cn/file/ocr-apply/20260128/21c27d9e-72ba-4664-906d-c52f2c8f2a87_0eea3c57-4934-744b-b0ea-0cdb277743ca.pdf?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=minioadmin%2F20260128%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20260128T033843Z&X-Amz-Expires=86400&X-Amz-SignedHeaders=host&X-Amz-Signature=9fcea6e02bc913e5bcc1711284afbf5166a050048b4c00e00e6eb04d8ffa6fa8",
  "status": "done",
  "duration": 2.9185240268707275,
  "result": null,
  "revised_result": null,
  "refer_files": {
    "json": "f6d2fe74-7ab8-4cc9-b883-744886972f5e",
    "docx": "e317d0cf-2787-41c9-9873-f9fcb5747365",
    "markdown": "9ae8c45b-fba3-4517-af60-4b60ddf9394f",
    "pptx": "5dc8c9f6-4d22-42d6-ac70-86da307fece4",
    "block_md": "9750e84c-3799-4bc8-b5a3-29551c909fbd",
    "html": "81d0a0c1-1116-4fcb-bd94-bcacc1d13fd6",
    "images": null,
    "pages": {
      "1.png": "7f3e3bc7-d9c9-4e14-b5e0-f5ba3b98b2b5",
      "2.png": "7b89d029-c7c6-40c0-a87b-c6b0d5739920"
    },
    "json_v2": "ed68d914-16fc-4432-aecc-7cdaf7215036",
    "markdown_v2": "23ad9526-30b9-4513-a783-542bc19a38c0",
    "html_url": "https://insightdoc.memect.cn/file/ocr-apply/20260128/0e361d38-4886-4c72-bce8-f6f93807558b_doc.html?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=minioadmin%2F20260128%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20260128T033843Z&X-Amz-Expires=86400&X-Amz-SignedHeaders=host&X-Amz-Signature=70ee4eb9f7af9cb14b810cef38ec050cec462ab1146f0a93c94b46383ad4d9b1",
    "pptx_url": "https://insightdoc.memect.cn/file/ocr-apply/20260128/0f904209-73f0-4800-a4d7-b4d1126770bc_doc.pptx?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=minioadmin%2F20260128%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20260128T033843Z&X-Amz-Expires=86400&X-Amz-SignedHeaders=host&X-Amz-Signature=c15cf8d1107e49bb3d4be7a0549bb0b3a5e9d3493ab428eeb8c6b604874f2add",
    "docx_url": "https://insightdoc.memect.cn/file/ocr-apply/20260128/8427473d-df4d-4c81-99fb-e4e61504cd60_doc.docx?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=minioadmin%2F20260128%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20260128T033843Z&X-Amz-Expires=86400&X-Amz-SignedHeaders=host&X-Amz-Signature=330ae853b99ca8ca6f49beb2111dd031d8b3e90128cb97813bc044c38b8a3fd3"
  },
  "task_type": "docparse",
  "message": "",
  "user_id": "sk_d7ju2t",
  "task_param": null,
  "other_info": {
    "duration_v1": 1.7794923782348633,
    "status_v1": "done",
    "duration_v2": 2.9110403060913086,
    "status_v2": "done"
  }
}

响应示例(200 OK - result_type=md,v1版本):

{
  "id": "111d8192-00e9-4bd4-a983-c7d8aaa4210f",
  "task_name": "0eea3c57-4934-744b-b0ea-0cdb277743ca_36",
  "file_id": "e7188903-9b1a-4c74-9e73-e9c11a4ed3eb",
  "file_url": "https://insightdoc.memect.cn/file/ocr-apply/20260128/25e02e45-8cd8-4ff3-853f-bacc1dc9e45e_0eea3c57-4934-744b-b0ea-0cdb277743ca.pdf?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=minioadmin%2F20260128%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20260128T053232Z&X-Amz-Expires=86400&X-Amz-SignedHeaders=host&X-Amz-Signature=5fe8ff2e4481c6dac8187c6a9654e15470bd5f51fd1de6afe939041f23330b34",
  "status": "done",
  "duration": 2.718078374862671,
  "result": null,
  "revised_result": "**股票简称:云南白药**\n\n**股票代码:000538**\n\n**公告编号:2023\\-20**\n\n**云南白药集团股份有限公司关于全资三级子公司完成私募投资基金管理人注销的公告**\n\n**本公司及董事会全体成员保证信息披露的内容真实、准确、完整,没有虚假记载、误导性陈述或重大遗漏。**\n\n云南白药集团股份有限公司(以下简称“云南白药”或“公司”)下属全资三级子公司海南云帆私募基金管理有限公司(以下简称“云帆基金公司”),由公司全资二级子公司云南白药集团(海南)有限公司持有100%股权,云帆基金公司于2021年在中国证券投资基金业协会(以下简称“基金业协会”)完成私募基金管理人备案登记,并在基金业协会备案了云帆1号私募证券投资基金。具体内容详见公司于2021年10月14日在巨潮资讯网(www\\.cninfo\\.com\\.cn)披露的《关于全资三级子公司完成私募投资基金备案的公告》(公告编号:2021\\-55)。\n\n近日,云帆基金公司在完成云帆1号私募证券投资基金清算后,在基金业协会完成了其私募基金管理人的注销登记,注销类型:主动注销。以上详细登记信息请查看基金业协会官方网站(http://www\\.amac\\.org\\.cn/)的公示信息。\n\n-------------------\n\n特此公告\n\n云南白药集团股份有限公司\n\n董 事 会\n\n2023年5月12日",
  "refer_files": {
    "json": "fd1632d1-cb85-4609-85e0-cc24cc85b61c",
    "docx": "6c5af1d9-fecd-45e9-beeb-5d493986ee92",
    "markdown": "c4cc4c10-1b6d-4858-b6a0-a48ab591dc0a",
    "pptx": "d4c91ad4-88fb-4885-94df-6b2176f4c8e6",
    "block_md": "82025fc6-4903-4a34-ab59-25a3b5587238",
    "html": "e9726540-ef9e-4f4d-8a35-3d42bcd3cfe6",
    "images": null,
    "pages": {
      "1.png": "131fedbd-50a4-486f-a371-4b4c2a838292",
      "2.png": "818c1171-d842-44f6-9e37-a88afbc9660f"
    },
    "json_v2": "cf493de3-1fd6-4f59-bb6d-1d7424843ecd",
    "markdown_v2": "28cf6868-df86-419f-aa0d-43365deb1ee0",
    "html_url": "https://insightdoc.memect.cn/file/ocr-apply/20260128/7cf4ceae-4627-4eaa-909c-2afc801f0548_doc.html?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=minioadmin%2F20260128%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20260128T053232Z&X-Amz-Expires=86400&X-Amz-SignedHeaders=host&X-Amz-Signature=0be59be1cc3bd0ad6bc9b46810dc0eb9ed844cc903f5218889cd4394f358f8c4",
    "pptx_url": "https://insightdoc.memect.cn/file/ocr-apply/20260128/92095e22-90a1-4125-a889-6c44bcac2fa1_doc.pptx?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=minioadmin%2F20260128%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20260128T053232Z&X-Amz-Expires=86400&X-Amz-SignedHeaders=host&X-Amz-Signature=2d4761dfa7dd648cdd296d83bde97b450d782c9edccbac772309e073c1f0ba98",
    "docx_url": "https://insightdoc.memect.cn/file/ocr-apply/20260128/e7059296-f246-4785-8afd-7f752291b931_doc.docx?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=minioadmin%2F20260128%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20260128T053232Z&X-Amz-Expires=86400&X-Amz-SignedHeaders=host&X-Amz-Signature=76ba513a26aaf95575c6ce950d63ab0adefa8734c87ac13b9fb1ec9363f33b5e"
  },
  "task_type": "docparse",
  "message": "",
  "user_id": "sk_d7ju2t",
  "task_param": null,
  "other_info": {
    "duration_v1": 1.7670137882232666,
    "status_v1": "done",
    "duration_v2": 2.7119598388671875,
    "status_v2": "done"
  }
}

6.4.2.2 财报解析获取任务详情/结果

财报解析获取任务结果的相关说明。

查询参数 (Query):

参数名 类型 必选 描述
result_type String 结果类型控制。
- 空 (默认): 基础模式。
- normalization: 归一化模式。
- matrix: 矩阵模式。

响应字段逻辑说明:

解析结果包含 resultrevised_result 字段,其结构根据 result_type 的不同而显著变化:

  1. result_type 为空 (默认)

  2. 返回默认解析结果。result 字段包含原始 OCR 数据,将文字内容、坐标位置(bbox)、置信度等信息打包在同一个对象结构中。revised_result 为人工修正

  3. 返回默认解析结果。result 字段包含原始 OCR 数据,将文字内容、坐标位置(bbox)、置信度等信息打包在同一个对象结构中。revised_result 为人工修正后的结果(若无修正则与 result 一致)。

  4. result_typenormalization

  5. 返回归一化处理结果。revised_result 包含经过财务语义理解后的结构化数据(如标准科目名称、行业分类、借贷平衡关系等)。

  6. result_typematrix

  7. 返回矩阵化数据。result 中的表格数据被拆分为两个独立的矩阵数组:

    • tables: 纯文本内容的二维数组。
    • tables_coord: 与文本一一对应的坐标二维数组。
  8. 此模式便于开发者直接将数据映射到 Excel 或其他表格处理软件中。

响应示例 (200 OK - result_type=matrix):

{
  "id": "f2de4d56-ce5d-47be-b576-9e17922cc7c1",
  "task_name": "08-合并资产负债表_14",
  "file_id": "5e6e159e-8d6b-4aae-b93b-8c80f2b7ec32",
  "file_url": "http://.../08-合并资产负债表.jpg?...",
  "status": "done",
  "duration": 15.832,
  "result": [
    {
      "tables": [
        [
          [ "", "附注", "2024年12月31日", "2023年12月31日" ],
          [ "流动资产:", "", "", "" ],
          [ "货币资金", "六、(一)", "141,579,324.33", "275,237,984.55" ],
          ......
          [ "资产总计", "", "1,957,448,719.76", "2,095,147,072.62" ]
        ]
      ],
      "tables_coord": [
        [
          [ "0,0;0,0;0,0;0,0", "1055,394;1129,394;1129,431;1055,431", "1322,387;1550,387;1550,422;1322,422", "1673,381;1902,381;1902,416;1673,416" ],
          [ "420,456;565,456;565,496;420,496", "0,0;0,0;0,0;0,0", "0,0;0,0;0,0;0,0", "0,0;0,0;0,0;0,0" ],
          [ "436,502;577,502;577,545;436,545", "0,0;0,0;0,0;0,0", "1416,496;1606,496;1606,526;1416,526", "1766,489;1960,489;1960,523;1766,523" ],
          ......
          [ "389,2816;528,2816;528,2857;389,2857", "0,0;0,0;0,0;0,0", "1354,2813;1569,2813;1569,2842;1354,2842", "1705,2807;1923,2807;1923,2840;1705,2840" ]
        ]
      ],
      "type_index": 0,
      "angle": 0
    }
  ],
  "revised_result": null,
  "refer_files": null,
  "task_type": "finance_ocr",
  "message": "",
  "user_id": "admin"
}

6.4.3 任务列表/历史记录 (List History)

分页获取历史任务记录。

查询参数 (Query):

参数名 类型 必选 默认值 描述
page Integer 1 页码
page_size Integer 10 每页条数 (最大100)
task_name String - 按任务名称筛选
task_status String - 按状态筛选 (done, processing 等)
task_type String - 按类型筛选

6.4.4 修正任务结果 (Revise Task)

对已解析的结果进行人工修正或更新。

请求参数 (Body):

{
  "task_name": "修正后的文件名(可选)",
  "revised_result": {
    "data": { ... } // 修正后的完整数据结构,需符合 result 字段的结构
  }
}

6.4.5 其他管理接口

6.5 错误码说明 (HTTP Status)

HTTP Code 描述 处理建议
200 成功 请求处理成功,请进一步检查响应体中的 status 字段。
401 未授权 检查 Authorization Header 是否正确。
422 参数错误 检查必填参数、文件格式或文件大小是否符合要求。
500 服务器错误 请联系技术支持。