"""正文提取数据模型""" from pydantic import BaseModel, Field class ProcessedArticle(BaseModel): """经过正文提取清洗后的文章""" source_id: str source_name: str url: str url_hash: str title: str = "" content: str = "" # 清洗后的正文(英文) publish_time: str = "" # ISO 8601 author: str = "" word_count: int = 0 md_path: str = "" # 原始 Markdown 路径 html_path: str = "" # 原始 HTML 路径 status: str = "success" # success | no_content | failed extractor: str = "trafilatura" # trafilatura | crawl4ai_md | none error: str = "" source_ids: list[str] = Field( default_factory=list, description="去重合并后的所有来源 ID(M3 去重时跨源命中重复会追加;" "首个来源始终为 source_id)", )