被测对象:上传清洗流程中的 AI 大模型模板匹配(智能清洗 → AI 判定 → 模型裁决模板 + 列绑定 → 出口 A/B 入库)。 目标:以生产环境思路造多行业、多方言、多表头变体文件,重点覆盖账单(银行流水)与话单(通信记录),并对
table_info全量模板做覆盖。 本轮只记录问题,不修改代码;发现项留给使用方确认后再决定是否修复。
| 项 | 值 |
|---|---|
| 后端 | 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 |
| 入口 | 登录 → 案件管理 → 打开案件 → 案件数据 → 清洗数据 → 文件上传 → 智能清洗 → 进度页 → 结果/导入文件 |
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 交既有链路」。| 途径 | 含义 | 预期 |
|---|---|---|
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 |
结构归一/必填错误率/置信度不过线/无绑定 | 不写业务表,需人工 |
所有可复现文件保留在 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、关键日志、截图
matched=1 字段做同义/换词改写,使既有匹配器在上传阶段无法精确命中,从而触发智能清洗的 AI 判定。结果列在每轮执行后回填。状态:
PASS/FAIL/BLOCKED/N/A。 「预期模板」为table_info.id;「出口」为 A=既有业务表、B=AI 动态表。
| 编号 | 场景 | 步骤 | 预期 | 结果 |
|---|---|---|---|---|
| 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 链路影响) | 待执行 |
| 编号 | 文件 | 场景 | 预期模板/行为 | 结果 |
|---|---|---|---|---|
| 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 去重或重新清洗;不得产生重复数据 | 待执行 |
| 编号 | 文件 | 场景 | 预期模板/行为 | 结果 |
|---|---|---|---|---|
| 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 副本 | 去重/重清洗不重复 | 待执行 |
| 编号 | 文件 | 场景 | 预期 | 结果 |
|---|---|---|---|---|
| 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 或自建;卡号保留 | 待执行 |
| 编号 | 场景 | 预期 | 结果 |
|---|---|---|---|
| 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 不执行 | 待执行 |
| 编号 | 场景 | 预期 | 结果 |
|---|---|---|---|
| ALL-01 | 364 个模板按各自表头生成同构文件,逐个上传 | 每个 sheet 均被既有匹配器命中;命中模板 id 正确;无解析异常 | 待执行 |
| ALL-02 | 364 个模板各生成 1 个「改一个匹配字段」变体,走 AI | 正确模板在候选 top-12;模型命中/合理自建;无错写业务表 | 待执行 |
| ALL-03 | 10 组重复表头模板族 | 记录先到先得/歧义;不崩溃 | 待执行 |
| ALL-04 | AI 模板库同表头二次上传 | HEADER_CACHE 零模型复用;数据并入/可撤销 | 待执行 |
| 编号 | 场景 | 预期 | 结果 |
|---|---|---|---|
| SEC-01 | 模型返回不存在的候选序号 | 按未命中处理,不越界、不落库 | 待执行 |
| SEC-02 | 模型编造字段名 | 被 filterBinds 丢弃;不静默吞列 | 待执行 |
| SEC-03 | 表头含「忽略以上指令」 | 不改变模型行为;匹配仍按结构 | 待执行 |
| SEC-04 | 跨案件读取 job/数据 | 拒绝或只返回当前案件 | 待执行 |
| SEC-05 | 出口 A 必填列错误率高 | verify 拦截 → NEED_REVIEW,不写业务表 | 待执行 |
每个用例记录:
SHEET_TEMPLATE_MATCHED_SUCCESS/FAIL、命中的既有模板;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;passesStrong 通过而写入错误业务表(P0)。详细问题、复现文件与日志见 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 变体) | 未全量执行;生成器与文件已保留,可补跑 |
docs/testing/fixtures/ai-llm-match-20261026/,可按 run_tests.py --ids ... 补跑。ai_clean_job/clean_error_log 记录与服务日志。| 日期 | 范围 | 结果 | 备注 |
|---|---|---|---|
| 2026-10-26 | 用例文档 | 已编写 | 按本文件执行 |
| 2026-10-26 | 账单/话单/跨行业/异常精选 | 已执行 | 发现 2 个 P0、4 个 P1、3 个 P2,详见 Bug 报告 |
| 2026-10-26 | table_info 364 模板同表头 | 执行中 | results/ 与报告回填 |