from typing import Any, Dict, List, Optional, Union
from pydantic import BaseModel
class UnstructuredInput(BaseModel):
filename: str # 必选,文件名,不包含路径
url: Optional[str] = None # url, b64_data两者二选一提供
b64_data: Optional[List[str]] = None # url, b64_data两者二选一提供
parameters: Optional[Dict] = {} # 可选,具体part的参数,见不同文件使用参数
# text: 文本模式,返回一个连续的txt格式token集合
# partition: 返回语义元素列表,语义元素包含标题,表,段落(眉页脚等其它元素已过滤)
# vis: 可视化,返回一个html文本,语义元素的可视化结果
mode: str = "text" # 可选,默认为text模式
class UnstructuredOutput(BaseModel):
status_code: int = 200 # 状态码,正确为200
status_message: str = "success" # 错误信息,正确为sucess
text: Optional[str] = None # 对应mode=text
html_text: Optional[str] = None # 对应mode=vis的结果
partitions: List[Dict[str, Any]] = [] # 对应mode=partition的结果
metadata: Dict[str, Any] = None # metadata数据,保存bbox和page信息
b64_pdf: Optional[str] = None # any2pdfd的结果
## partition模式的partitions输出示例
'type': 'UncategorizedText',
'element_id': 'c0417bd1849cff9c59244d4391077e67',
[113.9000015258789, 676.0675048828125, 505.54388427734375, 688.0675048828125], [89.90399932861328, 699.3474731445312, 505.583984375, 711.3474731445312],
[89.90399932861328, 722.7474975585938, 505.3080139160156, 734.7474975585938],
[89.90399932861328, 746.0234985351562, 505.583984375, 758.0234985351562]],
'indexes': [[0, 31], [32, 66], [67, 101], [102, 136]],
'types': ['paragraph', 'paragraph', 'paragraph', 'paragraph']}
'text': '公司在多年原始创新的基础上所形成的核心产品和关键技术是公司发展的核心竞争力。...'