# Interface Change Documentation ## 1. Model and Module Related ### 1.1 Model Configuration Files - **Storage Directory Change**: `paddlex/configs` has been updated to `paddlex/configs/modules`. - **Module Name Changes**, and related configuration file paths have also been updated: - `anomaly_detection` updated to `image_anomaly_detection` - `face_recognition` updated to `face_feature` - `general_recognition` updated to `image_feature` - `multilabel_classification` updated to `image_multilabel_classification` - `pedestrian_attribute` updated to `pedestrian_attribute_recognition` - `structure_analysis` updated to `layout_detection` - `table_recognition` updated to `table_structure_recognition` - `text_detection_seal` updated to `seal_text_detection` - `vehicle_attribute` updated to `vehicle_attribute_recognition` ### 1.2 Module Inference #### 1. `create_model()` - **Parameter Change**: - `model_name`: Only accepts model name. - **New Parameters**: - `model_dir`: Specifies the local directory for inference model files, defaults to `None`, which means automatically downloading and using the official model. - `batch_size`: Specifies the batch size during inference, defaults to `1`. - Supports specifying common model inference hyperparameters, with specific parameters related to the module, as detailed in the module tutorial documentation. For example, image classification module support `topk`. - `use_hpip` and `hpi_params`: For supporting high-performance inference, not enabled by default. - **Function Updates**: - Supports using PDF files as input samples for CV modules. - Prediction results remain of `dict` type, but the format has changed: from `{'key1': val}` to `{"res": {'key': val}}`, using `"res"` as the key with the original result data as the value. - When using the `save_to_xxx()` method to save prediction results, if `save_path` is a directory, the name for stored files has changed. For example, saving in JSON format is `{input_file_prefix}_res.json`; saving in image format is `{input_file_prefix}_res_img.{input_file_extension}`. ## 2. Pipeline Related ### 2.1 Pipeline Configuration Files - **Configuration File Storage Directory Change**: `paddlex/pipelines` updated to `paddlex/configs/pipelines`. - **Pipeline Name Changes**: - `ts_fc` updated to `ts_forecast` - `ts_ad` updated to `ts_anomaly_detection` - `ts_cls` updated to `ts_classification` ### 2.2 Pipeline Inference #### 1. CLI Inference for Pipelines - **New Support**: - Inference hyperparameters, specific parameters related to the pipeline, detailed in the pipeline tutorial documentation. For example, image classification pipeline supports the `--topk` parameter to specify the `topk` results to return. - **Removed**: - `--serial_number`, high-performance inference no longer requires the serial number. #### 2. `create_pipeline()` - **Removed**: - The `serial_number` parameter in high-performance inference `hpi_params`, high-performance inference no longer requires the serial number. - **No Longer Supported**: - Setting pipeline inference hyperparameters, all related parameters must be set through the pipeline configuration file, such as `batch_size`, thresholds, etc. - **Function Updates**: 1. When using the `save_to_xxx()` method to save prediction results, if `save_path` is a directory, the name for stored files has updated. 2. CV model prediction results have a new `page_index` field, which indicates the page number of the current prediction result only when the input sample is a PDF file. 3. Model pipeline prediction results have new pipeline inference parameter fields, such as the `text_det_params` field in the OCR pipeline, with values for the post-processing settings of the text detection model. - **Configuration File Format Update**: - After updating the content of the pipeline configuration file, it is divided into three parts: pipeline name, pipeline-related parameter settings, and sub-pipelines and sub-modules composition. For example: ```yaml pipeline_name: pipeline # Pipeline Name threshold: 0.5 # Pipeline Inference Related Parameters SubPipelines: # Sub-pipelines DocPreprocessor: pipeline_name: doc_preprocessor use_doc_unwarping: True # Settings related to the sub-pipeline DocPreprocessor SubModules: # Sub-modules TextDetection: module_name: text_detection model_name: PP-OCRv4_mobile_det model_dir: null limit_side_len: 960 # Settings related to the sub-module TextDetection limit_type: max max_side_limit: 4000 thresh: 0.3 box_thresh: 0.6 unclip_ratio: 1.5 ``` ## 3. Pipeline Features Changes ### 3.1 OCR Pipeline - **New Features**: - Document Preprocessing: Supports whole image direction classification and correction, controlled by relevant parameters in the `OCR.yaml` configuration file. - Text Line Direction Classification: Controlled by relevant parameters in the configuration file. - Support for modifying model inference hyperparameters, such as post-processing parameters of the text detection model, controlled by relevant parameters in the configuration file. ### 3.2 Seal Recognition and Formula Recognition Pipeline - **New Features**: - Document Preprocessing: Supports whole image direction classification and correction, controlled by relevant parameters in the configuration file. - Option to use the layout detection model: Controlled by relevant parameters in the configuration file. ### 3.3 Table Recognition Pipeline - **New Features**: - Document Preprocessing: Supports whole image direction classification and correction, controlled by relevant parameters in the configuration file. - Option to use the OCR pipeline for text detection and recognition: Controlled by relevant parameters in the configuration file. ### 3.4 Layout Analysis Pipeline - **Updated Features**: - Supports more inference hyperparameter settings, such as document preprocessing, text recognition, and model post-processing parameter settings, all of which can be configured in the pipeline configuration file. ### 3.5 PP-ChatOCRv3-doc Pipeline - **New Features**: - Supports standard OpenAI API calls, which can be controlled through relevant parameters in the configuration file. - Allows switching large language models during Chat API calls by passing the relevant configuration through the API call parameters. - **Updated Features**: - Inference Module Initialization: Supports initialization of the inference module upon its first invocation, eliminating the need for full initialization at pipeline startup. - Vector Library: Enables setting block size for long text and removes the control of interval duration between vector library calls.