ai-llm-template-match-strict-20261026.md 27 KB

AI 大模型 · 模板匹配严格测试用例(2026-10-26)

被测对象:上传清洗流程中的 AI 大模型模板匹配(智能清洗 → AI 判定 → 模型裁决模板 + 列绑定 → 出口 A/B 入库)。 目标:以生产环境思路造多行业、多方言、多表头变体文件,重点覆盖账单(银行流水)与话单(通信记录),并对 table_info 全量模板做覆盖。 本轮只记录问题,不修改代码;发现项留给使用方确认后再决定是否修复。

1. 环境与入口

项 值
后端 ai-server,http://127.0.0.1:8980/js/a,仓库根为工作目录
前端 ai-electron/frontend,http://localhost:3100
数据库 PostgreSQL 192.168.0.106:5432/zsjz-ai(平台库)
案件库 DuckDB,按案件落在 QingJian/workspace/{caseId}/...
模型 agent_model 默认对话模型:Ollama qwen @ http://10.66.66.66:8080/v1(Qwen3.8-27B);AI判定并发=3,单次匹配超时 180s,失败重试 3 次封顶
嵌入 本地 bge-m3(E:/workspace/zsjz-ai/bge-m3),向量索引已就绪
测试案件 AI大模型匹配严格测试-1026(案件 id=19,owner=admin)
账号 admin / admin123
入口 登录 → 案件管理 → 打开案件 → 案件数据 → 清洗数据 → 文件上传 → 智能清洗 → 进度页 → 结果/导入文件

1.1 界面可观测点

  • 上传页:解析结果树、工作表状态(模板匹配成功/失败)、「智能清洗」按钮。
  • 进度页:读取数据 → 清洗入库 → 数据治理;处理日志中 AI 阶段里程碑、逐表无法清洗原因。
  • 导入文件页:sheet 行「清洗方式」(系统清洗/AI清洗)、「备注」(AI 匹配模板 / AI 新建表 / 失败原因)、导入成功/失败数。
  • 导入数据页:既有业务表 / AI 动态表的数据与列。
  • 后端证据:ai_clean_job(status/exit_code/matched_by/match_tier/ref_template_id/ai_template_id/llm_calls/token/row_*)、ai_clean_template/ai_clean_field/ai_clean_rule、服务日志中的「AI 匹配第三腿」「可列打分明细」「出口 A 交既有链路」。

1.2 判定口径

途径 含义 预期
HEADER_CACHE 表头指纹直通 AI 模板库,零模型 复用存档绑定;同表头
SCORE 归一化打分命中既有模板且强壮 直接出口 A;零模型
LLM 模型在 top-12 候选中裁决 模型返回序号 + 列绑定;按置信度分档
SELF_HEADER 无候选,按文件表头自建表 出口 B,全 TEXT
A 写既有业务表 必须具备 ref_template_id,抽样 verify 通过
B 写 AI 动态表 ai_t* 具备 ai_template_id,数据落 AI 表
NEED_REVIEW 结构归一/必填错误率/置信度不过线/无绑定 不写业务表,需人工

2. 测试数据设计

2.1 目录与保留策略

所有可复现文件保留在 docs/testing/fixtures/ai-llm-match-20261026/:

fixtures/ai-llm-match-20261026/
├── bills/                 # 账单/银行流水(xlsx/csv/xls)
├── calls/                 # 话单/短信(xlsx/csv/xls)
├── cross-industry/        # 车辆/开户/企业/轨迹/酒店/航班等
├── edge/                  # 异常与边界
├── full-template/         # table_info 全量模板同表头文件
├── full-template-variants/# table_info 全量模板改写文件(模型判定)
├── manifest.json          # 测试编号、文件、预期模板、变异方式
└── results/               # 执行结果 JSON、关键日志、截图

2.2 文件生成原则

  • 生产风格数据:姓名、身份证、手机号、银行卡、开户行、商户、摘要、基站、通话时长均按真实形态生成;金额/日期/时间故意混入常见脏值。
  • 表头变异:
    • 同义词(同义词典命中):交易金额↔发生额、借贷标志↔借贷方向、查询卡号↔查询账号、本机号码↔本机电话号码。
    • 相似词/换词:号码↔号、帐号↔账号、类型↔类别、标识↔标志、时间↔时点/日期。
    • 列多/列少:额外业务列、删除可选列、只保留必填列、超宽表。
    • 列序:完全倒序/随机打乱(既有匹配器对列序不敏感,需配合改词才进入 AI)。
    • 噪音:标题行、说明行、空行、合并表头、全角空格/括号、重复列名、空列。
    • 格式:xlsx / xls / csv(UTF-8、UTF-8 BOM、GBK)、双 sheet、仅表头、损坏文件。
  • 数据唯一性:每个文件的数据/行数/姓名/卡号不同,避免上传 MD5 去重把用例吞掉。
  • 强制进入 AI 途径:对模板的 matched=1 字段做同义/换词改写,使既有匹配器在上传阶段无法精确命中,从而触发智能清洗的 AI 判定。

3. 用例清单

结果列在每轮执行后回填。状态:PASS / FAIL / BLOCKED / N/A。 「预期模板」为 table_info.id;「出口」为 A=既有业务表、B=AI 动态表。

A. UI 主链路

编号 场景 步骤 预期 结果
UI-01 新建案件并进入上传页 案件管理→新建→打开→清洗数据 进入文件上传,上传/智能清洗按钮可用状态正确 待执行
UI-02 上传 1 个标准账单 选择文件→上传→解析 工作表「模板匹配成功」;智能清洗可用 待执行
UI-03 上传 1 个账单变体(同义) 选择文件→上传→智能清洗 进入进度页;AI 判定推进;日志出现 AI 阶段;完成后统计正确 待执行
UI-04 上传 1 个话单变体(同义) 同上 同上,且落库行列正确 待执行
UI-05 进度页/结果页 观察进度环、步骤条、处理日志、完成态 无卡死;失败/无法清洗口径正确;可查看结果 待执行
UI-06 导入文件页回显 查看 sheet 行 清洗方式=AI清洗;备注=匹配模板/新建表;成功失败数正确 待执行
UI-07 导入数据页核验 打开 AI/既有表 行数、列名、日期/金额类型展示正确 待执行
UI-08 手动清洗回归 上传页→手动清洗 进入清洗页,模板/列映射可操作(不受 AI 链路影响) 待执行

B. 账单/银行流水矩阵(重点)

编号 文件 场景 预期模板/行为 结果
BILL-01 BILL-01_通用流水_标准.xlsx 与模板 2 逐字同表头(30 列) 上传阶段既有直中 → 系统清洗;不产生 AI job 待执行
BILL-02 BILL-02_通用流水_同义词.xlsx 查询卡号→查询账号、借贷标志→借贷方向、交易金额→发生额、交易时间→交易时点 既有失败→LLM;预期 2 或同族;出口 A 待执行
BILL-03 BILL-03_通用流水_相似词.xlsx 查询卡号码、借贷标识、交易金额(元)、交易日期时间 LLM;预期 2/26;置信度与列映射正确 待执行
BILL-04 BILL-04_通用流水_乱序增列.xlsx 列序倒置 + 额外 3 列(网点电话/经办人/复核人) LLM;模板 2 族;多余列不丢数据 待执行
BILL-05 BILL-05_通用流水_缺必填.xlsx 删除「借贷标志」;其余同表头 不得写既有业务表;出口 B 或 NEED_REVIEW 待执行
BILL-06 BILL-06_通用流水_表头多.xlsx 表头多于模板(+8 列) LLM;模板 2 族;额外列按原样保留 待执行
BILL-07 BILL-07_通用流水_表头少.xlsx 仅保留必填 + 4 个可选列 LLM;模板 2 族;出口 A 待执行
BILL-08 BILL-08_交通银行_标准.xlsx 模板 34 逐字表头 既有直中;不产生 AI job 待执行
BILL-09 BILL-09_交通银行_同义.xlsx 交易卡号→银行卡号、借贷方标志→借贷方向、金额→发生额 LLM;预期 34;出口 A 待执行
BILL-10 BILL-10_光大银行_同义乱序.xlsx 本方卡号→本方账号、借贷标志→借贷方向、业务摘要→摘要;列序打乱 LLM;预期 35;出口 A 待执行
BILL-11 BILL-11_工商银行_同义.xlsx 发生额→交易金额、记账时间→交易时间、卡号→银行卡号 LLM;预期 36;借贷方向/金额列不串 待执行
BILL-12 BILL-12_招商银行_同义.xlsx 交易方向→借贷标志、对手帐号→对方账号、联机余额→余额 LLM;预期 38;出口 A 待执行
BILL-13 BILL-13_长沙银行_同义.xlsx 卡(帐)号→账号、调查户名→户名、资金用途→摘要 LLM;预期 39;出口 A 待执行
BILL-14 BILL-14_DC银行_同义.xlsx D/C→借贷标志、交易对手名称→对方户名、可用余额→余额 LLM;预期 40;出口 A 待执行
BILL-15 BILL-15_邮储银行_同义.xlsx 借贷区分→借贷标志、交易对手名称→对方户名、交易名称→交易类型 LLM;预期 41;出口 A 待执行
BILL-16 BILL-16_渤海银行_同义.xlsx 客户名称→户名、账号余额→余额、交易摘要→摘要 LLM;预期 43;出口 A 待执行
BILL-17 BILL-17_微信支付账单.csv 微信风格:交易时间/交易类型/交易对方/商品/收/支/金额(元)/支付方式/当前状态/交易单号/商户单号/备注 LLM 或自建表;不得错写既有表;金额符号正确 待执行
BILL-18 BILL-18_支付宝账单.csv 支付宝风格:交易号/商家订单号/交易创建时间/付款时间/最近修改时间/交易来源地/类型/交易对方/商品名称/金额(元)/收/支/交易状态/服务费(元)/成功退款(元)/备注/资金状态 LLM 或自建表;收/支方向正确 待执行
BILL-19 BILL-19_银行流水_英文表头.xlsx 全英文:Bank Name/Customer Name/Card No/Debit Credit/Amount/Transaction Time/Balance LLM 不误判;无法匹配则自建表 待执行
BILL-20 BILL-20_银行流水_标题说明行.xlsx 第 1 行标题、第 2 行说明、第 3 行空行、第 4 行表头 表头定位正确;行号从表头后开始 待执行
BILL-21 BILL-21_金额脏值.xlsx 1,234.50 / -100.00 / (200.50) / ¥2,300.5 / 100元 / 1.2万 金额列解析正确;坏值置空或拒绝符合字段约束 待执行
BILL-22 BILL-22_日期脏值.xlsx 2026/1/6、2026年1月7日、2026-02-30、45000(Excel 序列号)、20260108 合法日期入库、非法置空;不得错日 待执行
BILL-23 BILL-23_流水_UTF8BOM.csv UTF-8 BOM,逗号分隔 探测/解析正常,表头无 BOM 残留 待执行
BILL-24 BILL-24_流水_GBK.csv GBK 编码 中文表头不乱码 待执行
BILL-25 BILL-25_流水_双sheet.xlsx Sheet1 流水、Sheet2 汇总 各自判定;互不污染;统计正确 待执行
BILL-26 BILL-26_流水_合并表头.xlsx 两行合并表头(借方/贷方金额) 结构归一不可用 → NEED_REVIEW,不硬洗 待执行
BILL-27 BILL-27_流水_空表头.xlsx 表头全空/仅一列 不崩溃;自建表或 NEED_REVIEW 待执行
BILL-28 BILL-28_流水_超宽表.xlsx 40 列,含 10 个额外列 不崩溃;模型列绑定不越界 待执行
BILL-29 BILL-29_流水_重复列名.xlsx 「交易金额」出现两次 不串列;重复列处理有明确行为 待执行
BILL-30 BILL-30_流水_同名重复上传.xlsx 与 BILL-02 内容相同的副本 按 MD5 去重或重新清洗;不得产生重复数据 待执行

C. 话单/通信记录矩阵(重点)

编号 文件 场景 预期模板/行为 结果
CALL-01 CALL-01_通信记录_标准.xlsx 模板 1 逐字表头(17 列) 既有直中;不产生 AI job 待执行
CALL-02 CALL-02_通信记录_同义词.xlsx 本机号码→本机电话号码、话单类型→通话类型、呼叫开始时间→通话开始时间 LLM;预期 1;出口 A 待执行
CALL-03 CALL-03_通信记录_相似词.xlsx 被叫号码、主叫号码、通话起始时点 LLM;预期 1/42;方向列不串 待执行
CALL-04 CALL-04_通信记录_乱序.xlsx 列序完全倒置 LLM;预期 1;出口 A 待执行
CALL-05 CALL-05_通信记录_缺必填.xlsx 删除「话单类型」 不写既有业务表;B 或 NEED_REVIEW 待执行
CALL-06 CALL-06_通信记录_多列.xlsx +基站名称/经纬度/IMEI/备注 LLM;预期 1;额外列保留 待执行
CALL-07 CALL-07_通信记录_少列.xlsx 仅本机号码/对方号码/话单类型/呼叫开始时间 LLM;预期 1;出口 A 待执行
CALL-08 CALL-08_导出话单_标准.xlsx 模板 42 逐字表头 既有直中 待执行
CALL-09 CALL-09_导出话单_同义.xlsx 本方号码→本机号码、主被叫标识→通话类型、本方姓名→使用人姓名 LLM;预期 42;出口 A 待执行
CALL-10 CALL-10_移动语音话单.xlsx 模板 1557528396 表头 + 基站号/小区代码 LLM;预期 1557528396;出口 A 待执行
CALL-11 CALL-11_移动调单.xlsx 模板 2022049432:呼叫类型/通话起始时间/基站号/小区号 LLM;预期 2022049432;出口 A 待执行
CALL-12 CALL-12_联通语音.xlsx 模板 401794643:billing_nbr计费号码 等中英混合 LLM;预期 401794643;出口 A 待执行
CALL-13 CALL-13_联通短信.xlsx 模板 584544982:收费用户号码/开始时间/通话类型/对端号码 LLM;预期 584544982/1318768623;出口 A 待执行
CALL-14 CALL-14_央地协查短信.xlsx 模板 2041091612:源地址/目的地址/短信分类/发送时间 LLM;预期 2041091612;短信内容保留 待执行
CALL-15 CALL-15_电信话单.xlsx 模板 830256311 中英混合表头 LLM;预期 830256311;出口 A 待执行
CALL-16 CALL-16_电信通联话单.xlsx 模板 1940093260:计费号码/主叫/开始时间/通话时长/被叫 LLM;预期 1940093260;出口 A 待执行
CALL-17 CALL-17_通信记录_日期时间分列.xlsx 模板 64:通话日期 + 通话时间 LLM;预期 64;日期/时间均入库 待执行
CALL-18 CALL-18_主被叫方向.xlsx 话单类型列值为「主叫/被叫/呼入/呼出」 方向映射正确;不得反转 待执行
CALL-19 CALL-19_时长格式.xlsx 1:23、83秒、0分45秒、2分 时长数值正确;坏值置空 待执行
CALL-20 CALL-20_基站信息.xlsx LAC/CellID/小区名/经纬度混合 基站列保留;不误绑对方归属地 待执行
CALL-21 CALL-21_话单_CSV标题行.csv 标题行 + 空行 + 表头 + 数据 表头定位正确;CSV 不 Skip 待执行
CALL-22 CALL-22_话单_损坏.xlsx 伪造 xlsx 内容 解析失败记录,不拖垮批次 待执行
CALL-23 CALL-23_话单_双sheet.xlsx 移动 + 联通两个 sheet 各自命中;统计合计正确 待执行
CALL-24 CALL-24_话单_重复上传.xlsx CALL-02 副本 去重/重清洗不重复 待执行

D. 跨行业矩阵

编号 文件 场景 预期 结果
IND-01 IND-01_车辆登记_标准.xlsx 已有 AI 模板「机动车信息」逐字表头 HEADER_CACHE 直通,零模型,出口 B 待执行
IND-02 IND-02_车辆登记_同义词.xlsx 号牌号码→牌照号码、车辆类型→车辆种类、车身颜色→颜色 LLM/SCORE;复用车辆 AI 模板;出口 B 待执行
IND-03 IND-03_银行开户信息.xlsx 模板 4 同义改写(客户名称→户名、证照号码→证件号码) LLM;预期 4;出口 A/B 合理 待执行
IND-04 IND-04_通信登记信息.xlsx 模板 3 同义改写(本机号码→号码) LLM;预期 3/23;不误判话单 待执行
IND-05 IND-05_企业基本信息.xlsx 复用 AI 模板「企业-基本信息查询」 HEADER_CACHE/LLM;出口 B 待执行
IND-06 IND-06_企业主要人员.xlsx 复用 AI 模板「企业-主要人员信息」 出口 B 待执行
IND-07 IND-07_个体经营者.xlsx 复用 AI 模板「个体-经营者信息」 出口 B 待执行
IND-08 IND-08_航班记录.xlsx 航班号/出发地/到达地/起飞时间/座位 LLM 或自建;不误判账单 待执行
IND-09 IND-09_酒店入住.xlsx 入住时间/离店时间/房号/酒店名称 LLM 或自建;日期正确 待执行
IND-10 IND-10_快递物流.xlsx 运单号/寄件人/收件人/揽收时间/轨迹 LLM 或自建;长数字不丢精度 待执行
IND-11 IND-11_社保公积金.xlsx 单位名称/缴费基数/缴费月份/个人账户 LLM 或自建;月份/金额正确 待执行
IND-12 IND-12_不动产登记.xlsx 不动产权证号/坐落/面积/权利人 LLM 或自建;面积数值正确 待执行
IND-13 IND-13_出入境记录.xlsx 证件号码/出入境日期/口岸/航班 LLM 或自建;日期正确 待执行
IND-14 IND-14_车辆轨迹.xlsx 车牌/过车时间/卡口/方向 LLM 或自建;时间/车牌正确 待执行
IND-15 IND-15_人员轨迹.xlsx 身份证号/时间/地点/经度/纬度 LLM 或自建;经纬度不丢精度 待执行
IND-16 IND-16_铁路购票.xlsx 订单号/车次/乘车日期/出发到达站/席别 LLM 或自建;订单号保留 待执行
IND-17 IND-17_电商订单.xlsx 订单号/下单时间/商品/金额/收货地址 LLM 或自建;金额正确 待执行
IND-18 IND-18_保险保单.xlsx 保单号/投保人/被保险人/保费/生效日期 LLM 或自建;金额/日期正确 待执行
IND-19 IND-19_证券交易.xlsx 股东账号/证券代码/买卖方向/成交价格/成交数量 LLM 或自建;方向/金额正确 待执行
IND-20 IND-20_支付账户.xlsx 支付账号/绑定卡/交易时间/金额/对手 LLM 或自建;卡号保留 待执行

E. 异常与边界

编号 场景 预期 结果
EDGE-01 仅表头无数据行 任务结束,0 行,不报错 待执行
EDGE-02 空 xlsx(无 sheet 内容) 解析失败/跳过,不拖垮批次 待执行
EDGE-03 伪造 xlsx SKIP/FAIL,llm=0 待执行
EDGE-04 非表格 txt 文件登记/不支持解析,不进入模板匹配 待执行
EDGE-05 5000 行流水 流式入库,进度/统计正确,耗时可控 待执行
EDGE-06 合并单元格表头 NEED_REVIEW,不硬洗 待执行
EDGE-07 三 sheet 混合(账单/话单/无关) 各自结论正确,互不污染 待执行
EDGE-08 表头在第 10 行 表头定位正确 待执行
EDGE-09 含空列/重复列/全角空格 归一化正确,不串列 待执行
EDGE-10 同名文件重复上传 MD5 去重或重清洗,不重复写 待执行
EDGE-11 跨案件同文件 数据隔离;既有模板可命中;AI 模板复用符合设计 待执行
EDGE-12 模型不可用(临时切断) fail-open:按未命中/自建表,不挂起批次 待执行
EDGE-13 判定中途重启后端 批次被标记 FAILED,可重新发起 待执行
EDGE-14 两批次并发提交 案件数据互不覆盖;job 不串 待执行
EDGE-15 表头含提示词注入/SQL 注入 模型不执行指令;不影响匹配;SQL 不执行 待执行

F. table_info 全量模板覆盖

编号 场景 预期 结果
ALL-01 364 个模板按各自表头生成同构文件,逐个上传 每个 sheet 均被既有匹配器命中;命中模板 id 正确;无解析异常 待执行
ALL-02 364 个模板各生成 1 个「改一个匹配字段」变体,走 AI 正确模板在候选 top-12;模型命中/合理自建;无错写业务表 待执行
ALL-03 10 组重复表头模板族 记录先到先得/歧义;不崩溃 待执行
ALL-04 AI 模板库同表头二次上传 HEADER_CACHE 零模型复用;数据并入/可撤销 待执行

G. 安全与一致性

编号 场景 预期 结果
SEC-01 模型返回不存在的候选序号 按未命中处理,不越界、不落库 待执行
SEC-02 模型编造字段名 被 filterBinds 丢弃;不静默吞列 待执行
SEC-03 表头含「忽略以上指令」 不改变模型行为;匹配仍按结构 待执行
SEC-04 跨案件读取 job/数据 拒绝或只返回当前案件 待执行
SEC-05 出口 A 必填列错误率高 verify 拦截 → NEED_REVIEW,不写业务表 待执行

4. 记录规则

每个用例记录:

  1. 测试编号、文件、上传时间、批次号;
  2. 上传阶段状态:SHEET_TEMPLATE_MATCHED_SUCCESS/FAIL、命中的既有模板;
  3. AI job:status / exit_code / matched_by / match_tier / ref_template_id / ai_template_id / llm_calls / token_in / token_out / confidence / row_total / row_loaded / row_rejected / fail_reason;
  4. 数据核验:落库表名、行数、列映射(重点检查金额/日期/方向/本方对方是否串列);
  5. 界面证据:进度页、导入文件页、导入数据页截图;
  6. 若失败:复现步骤、实际现象、服务日志片段、期望结果、严重级别(P0 错写业务表 / P1 无法入库 / P2 可用性问题)。

5. 预期风险点(用于定向观察)

  • 模型把 A 银行流水判成 B 银行模板,且因 passesStrong 通过而写入错误业务表(P0)。
  • 模型置信度 ≥0.6 但列绑定错误,抽样 verify 未覆盖到脏列,导致金额/借贷方向错误入库(P0)。
  • 同义词/相似词改写过强,正确模板未进 top-12 候选,AI 自建表而非命中模板(P1)。
  • 缺必填列时模型硬凑模板,出口 A verify 拦截转 NEED_REVIEW 而非合理自建(P2)。
  • 账单/话单方向字段(借贷、主被叫)映射反转(P0)。
  • 金额单位(元/万元)、日期格式、Excel 序列号处理错误(P1)。
  • 表头重复/空列导致列索引偏移(P1)。
  • 多 sheet / 大文件导致 SSE 进度卡死或统计口径不一致(P2)。
  • 重复上传/跨案件复用产生重复行或串案(P1)。

6. 执行结果(本轮已跑部分)

详细问题、复现文件与日志见 ai-llm-template-match-bug-report-20261026.md。 2026-10-26 修复后的复测记录见该报告第 7 节(F-01/F-01B/F-03B/F-05/F-06/F-07)。 本地 27B 模型只支持单并发,单次判定约 40–120s;为保证覆盖优先执行了高价值场景,未跑条目见 §7。

组 用例 结果
UI UI-01~UI-07(案件 19) 上传→智能清洗→进度页→结果页全链路可用;标准账单直中,账单/话单同义变体模型判定 0.95;完成统计存在多报(见 Bug F-02)
账单 BILL-01(标准) 既有直中模板 2;金额格式化值被清洗为 0.00(Bug F-03)
账单 BILL-02(同义) LLM 0.95 选中模板 2,出口 B 10 行;第二次跨案 HEADER_CACHE 零模型复用
账单 BILL-03(相似词) SCORE 出口 A,模板 2,置信 0.9320
账单 BILL-04(乱序+增列+换词) SCORE 出口 A,模板 2,置信 0.9275
账单 BILL-05(缺必填) 批次被停止前处于 MATCHING;未收口
账单 BILL-08(交行标准) 既有直中模板 34
账单 BILL-09(交行同义) P0 错配模板 48「农商行交易流水」;8 行数据全部被拒,业务表 0 行(Bug F-01)
账单 BILL-10/11(光大/工行同义) SCORE 出口 A,模板 35/36,置信 0.9320/0.9291
账单 BILL-12(招行同义) 主模型完成,批次停止前未收口
话单 CALL-01(标准)、CALL-08(导出话单标准) 既有直中模板 1/42,零模型
话单 CALL-02(同义) HEADER_CACHE 出口 B 12 行,零模型(跨案 AI 模板复用)
话单 CALL-03(相似词) LLM 出口 B 12 行,置信 0.95
话单 CALL-10(移动话单同义) LLM 出口 B 10 行,置信 0.95
话单 CALL-18(主被叫方向) LLM 出口 B 12 行;方向列落库为整串别名(Bug F-03B)
话单 CALL-09/17/19 上传阶段被既有模糊匹配误判为模板 3「通信登记信息」,未进入 AI;CALL-09 数据写入 call_opening_info 仅剩姓名/号码(Bug F-01B)
跨行业 IND-01(车辆标准) HEADER_CACHE 零模型,出口 B 8 行
跨行业 IND-02(车辆同义) LLM 0.97,出口 B 8 行
跨行业 IND-04(通信登记同义) LLM 出口 B 8 行
跨行业 IND-05/06/07(企业类标准) HEADER_CACHE 零模型,出口 B 6 行/6 行/6 行
跨行业 IND-08(民航订票同义) 模型返回 templateNo=0 → SELF_HEADER 自建表 7 行
跨行业 IND-20(支付账户同义) 模型返回 templateNo=0 → SELF_HEADER 自建表 7 行
跨行业 IND-03(银行开户同义) 上传直中被 6 列子模板 2084276161 吞掉;14 列不映射(Bug F-01B)
跨行业 IND-13(出入境同义) 上传直中被 5 列子模板 596849484 吞掉;姓名写入 certType,11 列丢失(Bug F-01B)
异常 EDGE-01(仅表头) 既有直中,0 行,批次 DONE
异常 EDGE-02/EDGE-04(空 workbook / txt) 不产生可清洗 sheet;txt 触发文件 AI 识别,与单会话模型争用导致同批 AI 清洗失败(Bug F-04B)
异常 EDGE-03(损坏 xlsx) job=SKIP「结构探测不可用」,不拖垮批次
异常 EDGE-06(表头第 10 行) 模型调用受争用断流 → FAIL「模型未返回可解析的规则草稿」
异常 EDGE-07(合并单元格) NEED_REVIEW「需要结构归一」,不硬洗
异常 EDGE-08(三 sheet) 银行流水直中;通信记录被模板 3 吞掉;通讯录 SELF_HEADER 5 行
异常 EDGE-09(空列/重复列) 上传直中模板 2(AI 被绕过);列处理未验证到 AI 列映射
异常 EDGE-10(表头注入) 模型未选模板 → SELF_HEADER 自建表 6 行,无注入执行
全量 ALL-01(364 模板同表头上传) 361/364 上传直中;345 命中正确模板、16 错配、3 失败(元数据不一致),详见 Bug 报告 F-01C
全量 ALL-02(364 模板 AI 变体) 未全量执行;生成器与文件已保留,可补跑

7. 未执行/受限说明

  • 本地模型单并发下单次 40–120s;为在合理时间内覆盖账单/话单/跨行业/异常,以下条目未执行或未收口:
    • BILL-06/07/12~16、BILL-17~30 大部;
    • CALL-04~07、CALL-11~16、CALL-20~24;
    • IND-09~12、IND-14~19;
    • ALL-02 全量变体、EDGE-05(5000 行)。
  • 相关样本、生成器和 manifest 均在 docs/testing/fixtures/ai-llm-match-20261026/,可按 run_tests.py --ids ... 补跑。
  • 内置浏览器截图受可见性限制;关键证据均保留为 API 返回 JSON、ai_clean_job/clean_error_log 记录与服务日志。

8. 执行记录

日期 范围 结果 备注
2026-10-26 用例文档 已编写 按本文件执行
2026-10-26 账单/话单/跨行业/异常精选 已执行 发现 2 个 P0、4 个 P1、3 个 P2,详见 Bug 报告
2026-10-26 table_info 364 模板同表头 执行中 results/ 与报告回填