Skip to content

使用 Gradio 界面

Gradio 界面提供了一种基于浏览器的方式,无需编写任何代码即可针对 PDF 文件运行 Cartex 管道并检查富化结果。专为本地开发人员测试和 QA 运行而设计。

启动界面

在仓库根目录运行:

python ui/app.py

Gradio 默认在 7860 端口启动本地服务器并自动打开浏览器标签。若浏览器未自动打开,请访问 http://localhost:7860

注意: 从仓库根目录运行此命令。请勿设置 PYTHONPATH=src——Cartex 使用 src. 前缀导入,设置该变量会导致模块双重身份 bug,使枚举比较静默失败。

上传文件

使用 Upload PDF 文件选择器选取 PDF 文件。上传后,Page Preview 会渲染所选页码范围的第一页。当 Page Numbers 字段变化时,预览自动更新。

页码

Page Numbers 字段接受逗号分隔的页码、范围或两者的组合:

输入 处理的页面
1 仅第 1 页
1,3,5 第 1、3、5 页
1-5 第 1 至 5 页(含)
1,3-5 第 1、3、4、5 页

页码从 1 开始计数。指定多个页码时,管道调用 extract_pages(),执行多页提取,对跨页上下文条目进行去重,并将所有检测到的表格合并为单个 ExtractionResult

模板选择

Template 下拉菜单控制富化时使用的列模式。每个选项对应 src/templates.py 中定义的一个 TemplateType 枚举值和固定的基础列列表。

显示名称 TemplateType 适用场景
Standard Takeoff STANDARD_TAKEOFF 含开启方式、材质和粗开口的标准窗门清单
Standard Takeoff + TDL/SDL STANDARD_TAKEOFF_TDL 同上,另包含分格类型(Dividers TDL TypeDividers SDL Type
Glass Schedule GLASS_SCHEDULE 含层数、品牌、配置和间隔条列的专项玻璃清单
Shop Details SHOP_DETAILS 含框架型材、五金、饰面及安装列的车间详图图纸

附加列

Additional Columns 复选框组允许将 FIELD_LIBRARY 中的字段追加到基础模板列之后。FIELD_LIBRARYsrc/templates.py 中定义的全部已知字段集合。

所选列追加在模板默认列之后。已包含在所选模板中的列会静默去重——在使用 Glass Schedule 时选择 Special Notes 不会有任何效果。

运行管道

点击 Run Pipeline 开始处理。Pipeline Log 实时显示三个阶段的进度:

  1. [1/3] 提取 — 在指定页面上检测表格和上下文条目。Page Preview 更新为带彩色边界框叠加的标注图:蓝色为主表,绿色为辅助表,橙色为上下文区域。
  2. [2/3] 路由 — 路由器选择适用于检测内容的专业策略。
  3. [3/3] 富化 — 所选专业策略运行,输出富化行数。

处理成功后,Enriched Table 展示每条提取清单行的数据。除模板列外,还包含三个诊断列:

内容
_confidence 富化器的数值置信度分数
_reasoning 该行富化方式的自由文本说明
_field_sources 将每列名映射到产生该值的 FieldSource 的 JSON 对象(如 auxiliary_tabletext_ruleimage_legenddimension_card

若管道失败,结果表下方会出现 Error Traceback 面板,显示完整的 Python 调用栈。

读取调试输出

每次成功运行均会在仓库根目录的 debug/ 目录写入一个 JSON 文件,文件名格式为 run_YYYYMMDD_HHMMSS.json

调试文件包含以下顶级字段:

字段 类型 描述
timestamp 字符串 运行的 ISO 8601 时间戳
file 字符串 处理的 PDF 文件绝对路径
pages 整数数组 处理的 1 起始页码
template 字符串 使用的 TemplateType 值(如 glass_schedule
columns 字符串数组 完整列列表,含附加列
strategies 字符串数组 已触发的专业策略名称,或 ["monolithic"]
total_rows 整数 返回的富化行数
context 对象数组 提取的序列化 TextContextModelImageContextModel 条目
rows 对象数组 序列化的 EnrichedRow 对象

rows 中的每条记录包含 data(富化的列值)、field_sources(逐列来源归因)、confidencereasoningfield_sourcesreasoning 是诊断某列获得特定值原因的主要字段。

Tip

写入 debug/ 的调试 JSON 是每次运行的权威测试产物。报告结果或提交 bug 时,请附上相关的 run_*.json 文件——它记录了完整的提取上下文、策略选择及每行的逐字段来源。