# 接口变化说明文档

## 一、模型模块相关

### 1.1 模型配置文件

- **存储目录变更**：`paddlex/configs` 更新为 `paddlex/configs/modules`。
- **模块名变更**，相关配置文件路径同样更新：
  - `anomaly_detection` 更新为 `image_anomaly_detection`
  - `face_recognition` 更新为 `face_feature`
  - `general_recognition` 更新为 `image_feature`
  - `multilabel_classification` 更新为 `image_multilabel_classification`
  - `pedestrian_attribute` 更新为 `pedestrian_attribute_recognition`
  - `structure_analysis` 更新为 `layout_detection`
  - `table_recognition` 更新为 `table_structure_recognition`
  - `text_detection_seal` 更新为 `seal_text_detection`
  - `vehicle_attribute` 更新为 `vehicle_attribute_recognition`

### 1.2 模型推理

#### 1. `create_model()`

- **参数修改**：
  - `model_name`：只能传入字符串类型的模型名。
  - **新增参数**：
    - `model_dir`：指定本地推理模型文件目录，默认为 `None`，表示自动下载官方模型并使用。
    - `batch_size`：指定推理时批处理的大小，默认为 `1`。
    - 支持指定模型常见超参数，具体参数与模型任务相关，详见模型文档。例如，图像分类模型支持 `topk`。
    - `use_hpip` 和 `hpi_params`：用于支持高性能推理，默认不开启。

- **功能更新**：
  - 支持 CV 类模型使用 PDF 文件作为输入样本。
  - 预测结果仍为 `dict` 类型，但格式有所变化：`{'key1': val}` 改为 `{"res": {'key': val}}`，即以 `"res"` 作为键，原结果数据作为值。
  - 使用 `save_to_xxx()` 方法保存预测结果时，若 `save_path` 为目录，存储文件命名方式有变更。例如，保存为 JSON 格式时为 `输入文件前缀名_res.json`；保存为图像格式时为 `输入文件前缀名_res_img.输入文件后缀名`。

## 二、模型产线相关

### 2.1 产线配置文件

- **配置文件存储目录变更**：`paddlex/pipelines` 更新为 `paddlex/configs/pipelines`。
- **产线名称变更**：
  - `ts_fc` 更新为 `ts_forecast`
  - `ts_ad` 更新为 `ts_anomaly_detection`
  - `ts_cls` 更新为 `ts_classification`

### 2.2 产线推理

#### 1. 模型产线命令行推理

- **新增支持**：
  - 推理超参数，具体参数与产线相关，详见产线文档。例如，图像分类产线支持 `--topk` 参数，指定返回的前 n 个结果。
- **删除**：
  - `--serial_number`，高性能推理不再需要传入序列号。

#### 2. `create_pipeline()`

- **删除**：
  - 高性能推理 `hpi_params` 参数中的 `serial_number` 参数，高性能推理不再需要传入序列号。
- **不再支持**：
  - 产线推理超参数设置，相关参数设置均需通过产线配置文件完成，如 `batch_size`、阈值等。
- **功能更新**：
  1. 使用 `save_to_xxx()` 方法保存预测结果时，若 `save_path` 为目录，存储文件命名方式更新。
  2. CV类模型预测结果新增 `page_index` 字段，仅当输入的预测样本为PDF文件时，标志当前预测结果的页码序号。
  3. 模型产线预测结果新增产线推理参数字段，如 OCR 产线中新增 `text_det_params` 字段，值为文本检测模型的后处理设置。
- **配置文件格式更新**：
  - 产线配置文件内容更新后，分为三部分：产线名称、产线相关参数设置、子产线与子模块构成。例如：

    ```yaml
    pipeline_name: pipeline # 产线名称
    threshold: 0.5 # 产线推理相关参数
    SubPipelines: # 子产线
      DocPreprocessor:
        pipeline_name: doc_preprocessor
        use_doc_unwarping: True # 子产线 DocPreprocessor 的相关设置
    SubModules: # 子模块
      TextDetection:
        module_name: text_detection
        model_name: PP-OCRv4_mobile_det
        model_dir: null
        limit_side_len: 960 # 子模块 TextDetection 的相关设置
        limit_type: max
        max_side_limit: 4000
        thresh: 0.3
        box_thresh: 0.6
        unclip_ratio: 1.5
    ```

## 三、产线功能变更

### 3.1 OCR 产线

- **新增功能**：
  - 文档预处理：支持整图方向分类与矫正，可通过配置文件 `OCR.yaml` 中相关参数控制。
  - 文本行方向分类：可通过配置文件中相关参数控制。
  - 支持修改模型推理超参数，如文本检测模型的后处理参数，可通过配置文件中相关参数控制。

### 3.2 印章识别与公式识别产线

- **新增功能**：
  - 文档预处理：支持整图方向分类与矫正，可通过配置文件中相关参数控制。
  - 是否使用版面检测模型：可通过配置文件中相关参数控制。

### 3.3 表格识别产线

- **新增功能**：
  - 文档预处理：支持整图方向分类与矫正，可通过配置文件中相关参数控制。
  - 是否使用 OCR 产线进行文本检测与识别：可通过配置文件中相关参数控制。

### 3.4 版面解析产线

- **更新功能**：
  - 支持更多推理超参数设置，如文档预处理、文本识别及模型后处理参数设置，均可在产线配置文件中进行设置。

### 3.5 PP-ChatOCRv3-doc 产线

- **新增功能**：
  - 支持标准 OpenAI API 接口调用，可通过配置文件中相关参数控制。
  - 支持在 Chat 接口调用时更换大语言模型，可通过接口调用参数传入相关配置。

- **更新功能**：
  - 推理模块初始化：支持推理模块首次调用时进行初始化，无需在产线启动时全部初始化。
  - 向量库：支持设置长文本分块大小，去除了调用向量库间隔时长控制。
