> ## Documentation Index
> Fetch the complete documentation index at: https://docs.textin.com/llms.txt
> Use this file to discover all available pages before exploring further.

# 返回JSON结构说明

### 返回结果示例

当您使用文档抽取API对文档进行结构化抽取时，抽取后的数据将按照以下结构的JSON格式返回。

<CodeGroup>
  ```json prompt模式 theme={null}
  {
    "version": "v1.6.5",                    // API版本号
    "code": 200,                            // 错误码，200表示成功
    "message": "success",                   // 错误信息，成功时为"success"
    "duration": 2825,                       // 推理时间(毫秒)
    "result": {                             // 主要结果对象
      "llm_json": {                         // prompt模式抽取的原始结果
        "基金代码": "011892",                // 用户自定义字段，由prompt决定
      },
      "raw_json": {                         // prompt模式抽取的带坐标信息抽取结果
        "基金代码" : {
          "value": "011892",                // 字段的抽取值
          "pages": [1],                     // 字段所在的页码列表
          "bounding_regions": [             // 字段的边界框信息
            {
              "position": [201,199,308,199,308,230,201,230],  // 字段在文档中的坐标位置
              "char_pos": [                 // 每个字符的详细坐标信息
                [202,202,218,201,218,230,201,229],
                [220,202,235,202,236,228,220,229]
              ],
              "page_id": 1,                 // 所在页码ID
              "value": "011892"             // 该边界框内的文本内容
            }
          ]
        }                      
      },
      "pages": [                            // prompt模式抽取的页面信息，按页组织
        {
          "status": "success",              // 当前页的引擎输出状态
          "page_id": 0,                    // 当前页码
          "durations": 612.5,              // 当前页解析总耗时(毫秒)
          "image_id": "90u12adcad08r2",    // 当前页图片id
          "origin_image_id": "90u12adcad08r2", // 切边或去水印前的原始页图片
          "width": 123,                    // 文档页宽度
          "height": 123,                   // 文档页高度
          "angle": 0                     // 图像的角度
        }
      ],
      "usage": {                            // prompt模式抽取的大模型token消耗情况
        "prompt_tokens": 100,              // 大模型抽取输入消耗token数量
        "completion_tokens": 100,          // 大模型抽取输出消耗token数量
        "total_tokens": 200                // 大模型抽取总消耗token数量
      }
    }
  }
  ```

  ```json 字段模式 theme={null}
  {
    "version": "v1.6.5",                    // API版本号
    "code": 200,                            // 错误码，200表示成功
    "message": "success",                   // 错误信息，成功时为"success"
    "duration": 2825,                       // 推理时间(毫秒)
    "result": {                             // 主要结果对象
      "details": {                          // 字段模式抽取的结果
        "row": [{}]                        // 表格抽取结果
      },
      "category": {                         // details字段里的数据类型
        "row": "item_list"                 // 表格类型，"item_list"表示表格抽取
      },
      "detail_structure": [                 // 字段的识别信息
        {
          "doc_type": "doc",               // 文档的类型
          "page_range": [1,2],             // 抽取的信息所在页范围
          "tables": [                      // 表格信息
            {
              "position": [343,56,459,56,459,90,343,90], // 坐标
              "page_number": 1,            // 所在页
              "text": "<table><tr><td>姓名</td><td>年龄</td></tr><tr><td>张三</td><td>18</td></tr></table>" // html形式的表格
            }
          ],
          "tables_relationship": [          // 表格的结构化信息
            {
              "row_count": 2,              // 行数
              "column_count": 2,           // 列数
              "cells": [{}],               // 单元格信息
              "title": "row"               // title
            }
          ],
          "category": ["标题","性别"],       // 结构化抽取出来的所有字段
          "fields": {},                    // 提取的字段结构化结果
          "stamps": [                      // 印章识别结果
            {
              "color": "红色",              // 当前印章颜色
              "position": [956,583,1362,590,1355,990,950,983], // 印章的坐标信息
              "stamp_shape": "圆章",        // 当前印章形状
              "type": "公章",              // 当前印章类型
              "value": "电力公司专用章"      // 印章的文本内容
            }
          ]
        }
      ],
      "rotated_image_width": 1000,         // 正方向时文档的宽，仅文档为图片时有效
      "rotated_image_height": 2000,        // 正方向时文档高，仅文档为图片时有效
      "page_count": 10,                    // 智能文档抽取处理的文档页数
      "image_angle": 90,                   // 文档角度，指原文档需要经过逆时针旋转多少度才能得到正方向的文档
      "finish_reason": "stop"              // 推理结束的原因，"stop"表示正常推理结束
    }
  }
  ```
</CodeGroup>

## **常规字段说明**

* x\_request\_id：该请求的唯一标识。
* code：错误码，200表示成功。详情见[**快速启动-错误码说明**](/xparse/extract-quickstart)。
* message：错误信息，成功时为”success”。
* version：版本号，例如”v1.6.5”。
* duration：推理时间(毫秒)，例如”2825”。

## **主要结果说明：result对象**

文档抽取API会在返回结果的result对象中包含以下关键信息。

### llm\_json：prompt模式抽取的原始结果

仅当传入prompt参数时返回，返回简化的键值对结构，方便直接使用。

由于使用大模型对用户输入的信息进行抽取，具体的字段名称和数据类型由用户的prompt决定，无法预先确定。例如：

```json theme={null}
{
  "确认日期": "2024/4/3",
  "基金代码": "011892",
  "持仓金额": "74178.80"
}
```

### raw\_json：prompt模式抽取的带坐标信息抽取结果

仅当传入prompt参数时返回，包含详细的坐标位置信息和边界框数据，用于高级处理场景。

由于使用大模型对用户输入的信息进行抽取，具体的字段名称无法预先确定，但每个字段值都遵循统一的结构格式，包含抽取值、页码信息和详细的坐标数据。

* **value**：字段的抽取值，即为**llm\_json**中对应的字段值，例如"011892"
* **pages**：字段所在的页码列表，例如\[1]
* **bounding\_regions**：字段的边界框信息，包含详细的位置和字符坐标。
  * **position**：字段在文档中的坐标位置，例如\[201,199,308,199,308,230,201,230]
  * **page\_id**：所在页码ID，例如"1"
  * **value**：该边界框内的文本内容，"011892"
  * **char\_pos**：每个字符的详细坐标信息，例如\[\[202,202,218,201,218,230,201,229],\[220,202,235,202,236,228,220,229]]

### pages：prompt模式抽取的页面信息，按页组织

仅当传入prompt参数时返回，当文档为多页结构时，返回每一页的详细信息，用于坐标回显。

* **status**：表示当前页的引擎输出状态，或者error\_message。
* **durations**：当前页解析总耗时(毫秒)
* **page\_id**：当前页码 (若为流式文件, 页码置为0)
* **width**：文档页宽度
* **height**：文档页高度
* **angle**：图像的角度（可选值0, 90, 180, 270)
* **image\_id**：当前页图片id 。
  * 下载方式：[https://api.textin.com/ocr\_image/download?image\_id=xxx](https://api.textin.com/ocr_image/download?image_id=xxx) ,需要在headers里添加appid和key）
* **origin\_image\_id**：切边或去水印前的原始页图片。受URL参数**切边矫正**或**去水印**影响，详情见[快速启动-URL参数说明](/xparse/extract-quickstart)。仅当开启切边或去水印时返回。
  * 下载方式同image\_id

### usage：prompt模式抽取的大模型token消耗情况

仅当传入prompt参数时返回。

* **prompt\_tokens**：大模型抽取输入消耗token数量。
* **completion\_tokens**：大模型抽取输出消耗token数量。
* **total\_tokens**：大模型抽取总消耗token数量。

### details：字段模式抽取的结果

* **additionalProp1**：表示抽取字段1
  * **value**：字段识别结果
  * **position**：文档被转正后，value在文档中的坐标，是一个长度为8的数组 \[0,1,2,3,4,5,6,7]
    * (0, 1) 左上角坐标
    * (2, 3) 右上角坐标
    * (4, 5) 右下角坐标
    * (6, 7) 左下角坐标
  * **description**：字段中文描述
  * **lines**：抽取结果的文本行信息
    * **page**：所在页数
    * **text**：文本内容
    * **pos**：文本行坐标，例如\[100, 200, 200, 200, 300, 200, 100, 300]
    * **angle**：文本行旋转角度，例如"90"
    * **char\_pos**：文本行字符坐标
* **additionalProp2**：表示抽取字段2
  * 同**additionalProp1**的输出结构
* **additionalProp3**：表示抽取字段3
  * 同**additionalProp1**的输出结构
* **row**：table\_header的抽取结果
  * 同**additionalProp1**的输出结构

### category：`details`字段里的数据类型

one\_to\_one：表示单值抽取的key；item\_list：表示表格的抽取

* **row**：表格类型，"item\_list"
* **key**：虚拟字段表示，真实调用时为抽取的字段，"one\_to\_one"，例如：
  * **additionalProp1**：one\_to\_one
  * **additionalProp2**：one\_to\_one
  * **additionalProp3**：one\_to\_one

### detail\_structure：字段的识别信息

* **doc\_type**：文档的类型，例如"doc"
* **page\_range**：抽取的信息所在页范围，例如\[1, 2]
* **tables**：表格信息
  * **position**：坐标
  * **page\_number**：所在页
  * **text**：html形式的表格
* **tables\_relationship**：表格的结构化信息
  * **row\_count**：行数
  * **column\_count**：列数
  * **cells**：单元格信息
    * **value**：字段识别结果
    * **bounding\_regions**：边界框信息
      * **page\_number**：所在页码
      * **value**：文本内容
      * **position**：文本的坐标
      * **char\_pos**：每个字符的坐标
  * **title**：title，例如"row"
* **category**：结构化抽取出来的所有字段，例如\["标题", "性别"]
* **fields**：提取的字段结构化结果
  * **additionalProp1**：表示抽取字段1
    * **value**：字段识别结果
    * **bounding\_regions**：边界框信息
      * **page\_number**：所在页码
      * **value**：文本内容
      * **position**：文本的坐标
      * **char\_pos**：每个字符的坐标
  * **additionalProp2**：表示抽取字段2
    * 同**additionalProp1**的输出结构
  * **additionalProp3**：表示抽取字段3
    * 同**additionalProp1**的输出结构
* **stamps**：印章识别结果
  * **color**：当前印章颜色
    * 红色
    * 蓝色
    * 黑色
    * 其他
  * **position**：印章的坐标信息
  * **stamp\_shape**：当前印章形状
    * 圆章
    * 椭圆章
    * 方章
    * 三角章
    * 菱形章
    * 其他
  * **type**：当前印章类型
    * 公章
    * 个人章
    * 专用章
    * 其他
    * 合同专用章
    * 财务专用章
    * 发票专用章
    * 业务专用章
  * **value**：印章的文本内容

### 其他result字段

* **success\_count**：prompt模式智能文档抽取处理的文档页数。
* **page\_count**：自定义字段模式智能文档抽取处理的文档页数，超过最大页数限制时（20页/100页），返回为最大页数。
* **finish\_reason**：推理结束的原因
  * stop：正常推理结束
  * length：token超出限制而结束
* **rotated\_image\_width**：正方向时文档的宽，仅文档为图片时其值有效；取值范围**x > 0**；例如"1000"。
* **rotated\_image\_height**：正方向时文档高，仅文档为图片时其值有效；取值范围**x > 0**；例如"2000"。
* **image\_angle**：文档角度，指原文档需要经过逆时针旋转多少度，才能得到正方向的文档，仅文档为图片时其值有效；取值范围**0,90,180,270**；例如"90"。

<Tip>
  **另外您也可以在**[**API**](/api-reference/endpoint/extract)**中查看Response说明以及调试查看结果。**
</Tip>

## **将结果保存为JSON文件**

参考[**快速启动**](/xparse/extract-quickstart)中的使用示例，您可以将API返回的结果保存为JSON文件。以下示例代码在快速启动中已提供，您可以直接使用。

```python theme={null}
# prompt模式，保存完整的JSON响应到result.json文件
with open("prompt_extract_result.json", "w", encoding="utf-8") as f:
	f.write(response)
```
