package com.heyu.api.baidu.request.convert;


import com.heyu.api.baidu.request.BBaseRequest;
import lombok.Data;

/****
 * https://console.bce.baidu.com/support/?_=1740703582749&timestamp=1740705642373#/api?product=AI&project=%E6%96%87%E5%AD%97%E8%AF%86%E5%88%AB&parent=%E6%99%BA%E8%83%BD%E6%96%87%E6%A1%A3%E5%88%86%E6%9E%90&api=rest%2F2.0%2Fbrain%2Fonline%2Fv1%2Fextract%2Ftask&method=post
 *文档抽取-提交请求
 *
 */
@Data
public class BExtractRequest extends BBaseRequest {


    /***
     * 文档 base64编码，需去掉编码头（data:image/jpeg;base64, ），支持上传 JPG、JPEG、PNG、BMP、TIF 和 TIFF 格式图片及 DOC、DOCX、PDF、XLSX、XLS 和 OFD 格式文档， 单个文件大小不超过50MB
     * **优先级：**file>fileURLs，当file字段存在时，fileURLs字段失效
     *
     */
    private String file;


    /***
     * 文档名称，当传入file参数时，该字段必传，例如test.docx
     *
     */
    private String fileName;


    /***
     * 文件数据URL，URL长度不超过1024字节，支持单个URL传入。其余文件准入标准与file一致。
     * **优先级：**file>fileURLs，当file字段存在时，fileURLs字段失效
     */
    private String fileURLs;

    /***
     * 用户在智能文档分析平台配置的清单版本id
     * **优先级：**manifestVersionId>manifest，当manifestVersionId字段存在时，manifest字段失效
     */
    private String manifestVersionId;


    /***
     * 抽取字段配置，每个抽取字段包含key、parentKey、description三个参数：
     * • key为抽取字段名称，是必传参数；
     * • parentKey为抽取字段的主字段，是非必传参数，不存在时传root或为空；
     * • description为抽取字段的补充说明，用于辅助大模型提升抽取效果，是非必传参数，不存在时为空。
     * 以上三个参数支持中英文、数字、下划线、中划线、斜杠、冒号和括号，其中中横线、下划线、斜杠和冒号不能作为开头和结尾。key和parentKey字符数不超过30，description字符数不超过100。
     * key的数量不能超过100。
     * **优先级：**manifestVersionId>manifest，当manifestVersionId字段存在时，manifest字段失效
     */
    private String manifest;


    /**
     * 是否开启字段值去重。开启后，对单个字段内重复抽取的相同值进行去重，并默认输出首个值的位置信息
     */
    private String removeDuplicates;

    /**
     * 是否开启指定页抽取。开启后，可输入指定页码进行抽取，扣费额度也依据指定页码范围
     * 输入格式：页码从1开始，使用英文逗号分隔单个页码，用连字符表示页码范围。例如，输入1,5-10,15，表示抽取第1页、第5至10页和第15页，共计扣减8页的额度
     * 注意： 鉴于流式文档的特性，DOC/DOX/WPS/XLS/XLSX文件的页码解析不固定，建议使用PDF/OFD和图片等版式文档以确保页码解析的准确性
     */
    private String pageRange;

    /***
     * 	是否开启印章抽取。开启后，将抽取文档内的印章信息，但会相应增加任务耗时
     */
    private String extractSeal;


    /**
     * 是否开启水印去除。开启后，将去除文档内的水印、底纹、印章等视觉干扰，优化模型抽取效果，但会相应增加任务耗时
     */
    private String eraseWatermark;


}


