call_20261026_112508.json 42 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229
  1. [
  2. {
  3. "test_id": "CALL-01",
  4. "file": "calls\\CALL-01_通信记录_标准.xlsx",
  5. "expected_template_id": 1,
  6. "template_id": 1,
  7. "mutation": {},
  8. "notes": "逐字同表头,预期既有直中",
  9. "upload_code": 200,
  10. "upload_message": "",
  11. "upload": "OK",
  12. "batch_id": "2114558923641462784",
  13. "file_id": "2114558923645657088",
  14. "sheets": [
  15. {
  16. "sheet_id": "2114558923687600128",
  17. "sheet_name": "通信记录",
  18. "file_status": "SHEET_TEMPLATE_MATCHED_SUCCESS",
  19. "template_id": 1,
  20. "table_name": "通信记录",
  21. "line_no": 2,
  22. "data_num": 14,
  23. "main_id": 1,
  24. "job": null
  25. }
  26. ],
  27. "smart_clean": {
  28. "code": 200,
  29. "message": "",
  30. "data": {
  31. "batchId": "2114558923641462784",
  32. "stage": "JUDGING",
  33. "fileCount": 3,
  34. "sheetTotal": 3,
  35. "matchedCount": 1,
  36. "aiSheetCount": 2
  37. }
  38. },
  39. "batch_final": {
  40. "stage": "DONE",
  41. "fileCount": 3,
  42. "sheetTotal": 3,
  43. "matchedCount": 1,
  44. "aiJudgedCount": 2,
  45. "existingHitCount": 0,
  46. "aiLoadCount": 2,
  47. "loadedRows": "24",
  48. "rejectedRows": "0",
  49. "unprocessedRows": "0",
  50. "selfBuiltCount": 0,
  51. "needReviewCount": 0,
  52. "failedCount": 0,
  53. "needReview": []
  54. },
  55. "jobs": [],
  56. "ai_templates": [],
  57. "chunk_batch": {
  58. "stage": "DONE",
  59. "fileCount": 3,
  60. "sheetTotal": 3,
  61. "matchedCount": 1,
  62. "aiJudgedCount": 2,
  63. "existingHitCount": 0,
  64. "aiLoadCount": 2,
  65. "loadedRows": "24",
  66. "rejectedRows": "0",
  67. "unprocessedRows": "0",
  68. "selfBuiltCount": 0,
  69. "needReviewCount": 0,
  70. "failedCount": 0,
  71. "needReview": []
  72. }
  73. },
  74. {
  75. "test_id": "CALL-02",
  76. "file": "calls\\CALL-02_通信记录_同义词.xlsx",
  77. "expected_template_id": 1,
  78. "template_id": 1,
  79. "mutation": {
  80. "本机号码": "本机电话号码",
  81. "话单类型": "呼叫类型",
  82. "呼叫开始时间": "通话开始时间"
  83. },
  84. "notes": "必填列换同义词,强制 AI",
  85. "upload_code": 200,
  86. "upload_message": "",
  87. "upload": "OK",
  88. "batch_id": "2114558923641462784",
  89. "file_id": "2114558924744564736",
  90. "sheets": [
  91. {
  92. "sheet_id": "2114558924769730560",
  93. "sheet_name": "通信记录",
  94. "file_status": "SHEET_TEMPLATE_MATCHED_FAIL",
  95. "template_id": null,
  96. "table_name": null,
  97. "line_no": null,
  98. "data_num": 14,
  99. "main_id": null,
  100. "job": {
  101. "job_id": 2114558927110152192,
  102. "sheet_id": 2114558924769730560,
  103. "status": "SUCCESS",
  104. "exit_code": "B",
  105. "matched_by": "HEADER_CACHE",
  106. "match_tier": "STRONG",
  107. "ref_template_id": null,
  108. "ai_template_id": 2114552985715048448,
  109. "llm_calls": 0,
  110. "confidence": "0.9500",
  111. "token_in": null,
  112. "token_out": null,
  113. "cost_ms": 52,
  114. "row_total": 12,
  115. "row_loaded": 12,
  116. "row_rejected": 0,
  117. "row_warned": 0,
  118. "row_unprocessed": 0,
  119. "fail_reason": null,
  120. "draft": null,
  121. "detail": "{\"sampled\":12,\"valid\":12,\"invalid\":0,\"estTotalRows\":\"14\",\"perColErrorRate\":{\"0\":0.0,\"1\":0.0,\"2\":0.0,\"3\":0.0,\"4\":0.0,\"5\":0.0,\"6\":0.0,\"7\":0.0,\"8\":0.0,\"9\":0.0,\"10\":0.0,\"11\":0.0,\"12\":0.0,\"13\":0.0,\"14\":0.0,\"15\":0.0,\"16\":0.0},\"rejectedCols\":[],\"columnErrors\":{},\"confidence\":{\"headerScore\":1.0,\"perColErrorRate\":0.0,\"requiredFillRate\":1.0,\"rowYield\":1.0,\"llmConfidence\":0.0},\"previewRows\":[[\"c0\",\"c1\",\"c2\",\"c3\",\"c4\",\"c5\",\"c6\",\"c7\",\"c8\",\"c9\",\"c10\",\"c11\",\"c12\",\"c13\",\"c14\",\"c15\",\"c16\"],[\"尤文\",\"13976227352\",\"15127217287\",\"主叫\",\"2026-01-01 09:00:00\",\"1:35\",\"57350\",\"90536\",\"冯杰\",\"510107198606216006\",\"500103199409234042\",\"15110693090\",\"19963336363\",\"中国移动\",\"主叫\",\"备注1\",\"主叫\"],[\"金轩\",\"13877201970\",\"18630678942\",\"被叫\",\"2026-01-02 10:07:00\",\"60\",\"26639\",\"43186\",\"吕刚\",\"330106198711182899\",\"310115199711144187\",\"13928984352\",\"17749525244\",\"中国联通\",\"被叫\",\"备注2\",\"被叫\"],[\"朱静\",\"15293885942\",\"13944248943\",\"呼入\",\"2026-01-03 11:14:00\",\"312\",\"64351\",\"72882\",\"严强\",\"110105199707035121\",\"330106199601070436\",\"13801812478\",\"13567775714\",\"中国移动\",\"呼入\",\"备注3\",\"呼入\"],[\"秦超\",\"13870150942\",\"18635814048\",\"呼出\",\"2026-01-04 12:21:00\",\"0\",\"48669\",\"17893\",\"钱梅\",\"500103199401170654\",\"330106199705045251\",\"15114473513\",\"13876122527\",\"中国联通\",\"呼出\",\"备注4\",\"呼出\"]],\"load\":{\"source\":12,\"loaded\":12,\"rejected\":0,\"warned\":0,\"unprocessed\":0,\"reasons\":{},\"columns\":{},\"optional\":{},\"samples\":[]}}",
  122. "model_name": null,
  123. "update_time": "2026-10-26 11:25:54.289655"
  124. }
  125. }
  126. ],
  127. "smart_clean": {
  128. "code": 200,
  129. "message": "",
  130. "data": {
  131. "batchId": "2114558923641462784",
  132. "stage": "JUDGING",
  133. "fileCount": 3,
  134. "sheetTotal": 3,
  135. "matchedCount": 1,
  136. "aiSheetCount": 2
  137. }
  138. },
  139. "batch_final": {
  140. "stage": "DONE",
  141. "fileCount": 3,
  142. "sheetTotal": 3,
  143. "matchedCount": 1,
  144. "aiJudgedCount": 2,
  145. "existingHitCount": 0,
  146. "aiLoadCount": 2,
  147. "loadedRows": "24",
  148. "rejectedRows": "0",
  149. "unprocessedRows": "0",
  150. "selfBuiltCount": 0,
  151. "needReviewCount": 0,
  152. "failedCount": 0,
  153. "needReview": []
  154. },
  155. "jobs": [
  156. {
  157. "job_id": 2114558927110152192,
  158. "sheet_id": 2114558924769730560,
  159. "status": "SUCCESS",
  160. "exit_code": "B",
  161. "matched_by": "HEADER_CACHE",
  162. "match_tier": "STRONG",
  163. "ref_template_id": null,
  164. "ai_template_id": 2114552985715048448,
  165. "llm_calls": 0,
  166. "confidence": "0.9500",
  167. "token_in": null,
  168. "token_out": null,
  169. "cost_ms": 52,
  170. "row_total": 12,
  171. "row_loaded": 12,
  172. "row_rejected": 0,
  173. "row_warned": 0,
  174. "row_unprocessed": 0,
  175. "fail_reason": null,
  176. "draft": null,
  177. "detail": "{\"sampled\":12,\"valid\":12,\"invalid\":0,\"estTotalRows\":\"14\",\"perColErrorRate\":{\"0\":0.0,\"1\":0.0,\"2\":0.0,\"3\":0.0,\"4\":0.0,\"5\":0.0,\"6\":0.0,\"7\":0.0,\"8\":0.0,\"9\":0.0,\"10\":0.0,\"11\":0.0,\"12\":0.0,\"13\":0.0,\"14\":0.0,\"15\":0.0,\"16\":0.0},\"rejectedCols\":[],\"columnErrors\":{},\"confidence\":{\"headerScore\":1.0,\"perColErrorRate\":0.0,\"requiredFillRate\":1.0,\"rowYield\":1.0,\"llmConfidence\":0.0},\"previewRows\":[[\"c0\",\"c1\",\"c2\",\"c3\",\"c4\",\"c5\",\"c6\",\"c7\",\"c8\",\"c9\",\"c10\",\"c11\",\"c12\",\"c13\",\"c14\",\"c15\",\"c16\"],[\"尤文\",\"13976227352\",\"15127217287\",\"主叫\",\"2026-01-01 09:00:00\",\"1:35\",\"57350\",\"90536\",\"冯杰\",\"510107198606216006\",\"500103199409234042\",\"15110693090\",\"19963336363\",\"中国移动\",\"主叫\",\"备注1\",\"主叫\"],[\"金轩\",\"13877201970\",\"18630678942\",\"被叫\",\"2026-01-02 10:07:00\",\"60\",\"26639\",\"43186\",\"吕刚\",\"330106198711182899\",\"310115199711144187\",\"13928984352\",\"17749525244\",\"中国联通\",\"被叫\",\"备注2\",\"被叫\"],[\"朱静\",\"15293885942\",\"13944248943\",\"呼入\",\"2026-01-03 11:14:00\",\"312\",\"64351\",\"72882\",\"严强\",\"110105199707035121\",\"330106199601070436\",\"13801812478\",\"13567775714\",\"中国移动\",\"呼入\",\"备注3\",\"呼入\"],[\"秦超\",\"13870150942\",\"18635814048\",\"呼出\",\"2026-01-04 12:21:00\",\"0\",\"48669\",\"17893\",\"钱梅\",\"500103199401170654\",\"330106199705045251\",\"15114473513\",\"13876122527\",\"中国联通\",\"呼出\",\"备注4\",\"呼出\"]],\"load\":{\"source\":12,\"loaded\":12,\"rejected\":0,\"warned\":0,\"unprocessed\":0,\"reasons\":{},\"columns\":{},\"optional\":{},\"samples\":[]}}",
  178. "model_name": null,
  179. "update_time": "2026-10-26 11:25:54.289655"
  180. }
  181. ],
  182. "ai_templates": [
  183. {
  184. "id": 2114552985715048448,
  185. "table_name_cn": "通信记录",
  186. "headers": "使用人姓名,本机电话号码,对方号码,呼叫类型,通话开始时间,呼叫时长,本机LAC号,本机cellid,对方姓名,使用人证件号码,对方证件号码,本机号码归属地,对方号码归属地,本机归属运营商,通话类型,备注,通话所在地",
  187. "status": "ONLINE",
  188. "confidence": "0.9500",
  189. "match_tier": "STRONG",
  190. "fields": [
  191. {
  192. "column_name": "c0",
  193. "field_name_cn": "使用人姓名",
  194. "field_type": "TEXT",
  195. "required": 0,
  196. "field_sort": 1
  197. },
  198. {
  199. "column_name": "c1",
  200. "field_name_cn": "本机电话号码",
  201. "field_type": "PHONE",
  202. "required": 1,
  203. "field_sort": 2
  204. },
  205. {
  206. "column_name": "c2",
  207. "field_name_cn": "对方号码",
  208. "field_type": "PHONE",
  209. "required": 1,
  210. "field_sort": 3
  211. },
  212. {
  213. "column_name": "c3",
  214. "field_name_cn": "呼叫类型",
  215. "field_type": "CALL_DIRECTION",
  216. "required": 1,
  217. "field_sort": 4
  218. },
  219. {
  220. "column_name": "c4",
  221. "field_name_cn": "通话开始时间",
  222. "field_type": "DATE_TIME",
  223. "required": 1,
  224. "field_sort": 5
  225. },
  226. {
  227. "column_name": "c5",
  228. "field_name_cn": "呼叫时长",
  229. "field_type": "TEXT",
  230. "required": 0,
  231. "field_sort": 6
  232. },
  233. {
  234. "column_name": "c6",
  235. "field_name_cn": "本机LAC号",
  236. "field_type": "TEXT",
  237. "required": 0,
  238. "field_sort": 7
  239. },
  240. {
  241. "column_name": "c7",
  242. "field_name_cn": "本机cellid",
  243. "field_type": "TEXT",
  244. "required": 0,
  245. "field_sort": 8
  246. },
  247. {
  248. "column_name": "c8",
  249. "field_name_cn": "对方姓名",
  250. "field_type": "TEXT",
  251. "required": 0,
  252. "field_sort": 9
  253. },
  254. {
  255. "column_name": "c9",
  256. "field_name_cn": "使用人证件号码",
  257. "field_type": "TEXT",
  258. "required": 0,
  259. "field_sort": 10
  260. },
  261. {
  262. "column_name": "c10",
  263. "field_name_cn": "对方证件号码",
  264. "field_type": "TEXT",
  265. "required": 0,
  266. "field_sort": 11
  267. },
  268. {
  269. "column_name": "c11",
  270. "field_name_cn": "本机号码归属地",
  271. "field_type": "TEXT",
  272. "required": 0,
  273. "field_sort": 12
  274. },
  275. {
  276. "column_name": "c12",
  277. "field_name_cn": "对方号码归属地",
  278. "field_type": "TEXT",
  279. "required": 0,
  280. "field_sort": 13
  281. },
  282. {
  283. "column_name": "c13",
  284. "field_name_cn": "本机归属运营商",
  285. "field_type": "TEXT",
  286. "required": 0,
  287. "field_sort": 14
  288. },
  289. {
  290. "column_name": "c14",
  291. "field_name_cn": "通话类型",
  292. "field_type": "TEXT",
  293. "required": 0,
  294. "field_sort": 15
  295. },
  296. {
  297. "column_name": "c15",
  298. "field_name_cn": "备注",
  299. "field_type": "TEXT",
  300. "required": 0,
  301. "field_sort": 16
  302. },
  303. {
  304. "column_name": "c16",
  305. "field_name_cn": "通话所在地",
  306. "field_type": "TEXT",
  307. "required": 0,
  308. "field_sort": 17
  309. }
  310. ]
  311. }
  312. ]
  313. },
  314. {
  315. "test_id": "CALL-03",
  316. "file": "calls\\CALL-03_通信记录_相似词.xlsx",
  317. "expected_template_id": 1,
  318. "template_id": 1,
  319. "mutation": {
  320. "本机号码": "主叫号码",
  321. "对方号码": "被叫号码",
  322. "呼叫开始时间": "通话起始时点"
  323. },
  324. "notes": "主叫/被叫/时点相似词,强制 AI",
  325. "upload_code": 200,
  326. "upload_message": "",
  327. "upload": "OK",
  328. "batch_id": "2114558923641462784",
  329. "file_id": "2114558925872832512",
  330. "sheets": [
  331. {
  332. "sheet_id": "2114558925893804032",
  333. "sheet_name": "通信记录",
  334. "file_status": "SHEET_TEMPLATE_MATCHED_FAIL",
  335. "template_id": null,
  336. "table_name": null,
  337. "line_no": null,
  338. "data_num": 13,
  339. "main_id": null,
  340. "job": {
  341. "job_id": 2114558927147900928,
  342. "sheet_id": 2114558925893804032,
  343. "status": "SUCCESS",
  344. "exit_code": "B",
  345. "matched_by": "LLM",
  346. "match_tier": "STRONG",
  347. "ref_template_id": null,
  348. "ai_template_id": 2114559115165966336,
  349. "llm_calls": 1,
  350. "confidence": "0.9500",
  351. "token_in": 6039,
  352. "token_out": 691,
  353. "cost_ms": 273,
  354. "row_total": 12,
  355. "row_loaded": 12,
  356. "row_rejected": 0,
  357. "row_warned": 0,
  358. "row_unprocessed": 0,
  359. "fail_reason": null,
  360. "draft": "{\"templateNo\":3,\"headerRow\":0,\"category\":\"COMMUNICATION\",\"structHints\":[\"TRIM_VALUES\"],\"binds\":[{\"fileColIndex\":0,\"fieldNameEn\":\"personName\",\"hints\":[],\"required\":false,\"confidence\":0.95},{\"fileColIndex\":1,\"fieldNameEn\":\"personPhone\",\"hints\":[],\"required\":true,\"confidence\":0.95},{\"fileColIndex\":2,\"fieldNameEn\":\"otherPhone\",\"hints\":[],\"required\":true,\"confidence\":0.95},{\"fileColIndex\":3,\"fieldNameEn\":\"callDirection\",\"hints\":[],\"required\":true,\"confidence\":0.95},{\"fileColIndex\":4,\"fieldNameEn\":\"callDateTime\",\"hints\":[],\"required\":true,\"confidence\":0.95},{\"fileColIndex\":5,\"fieldNameEn\":\"duration\",\"hints\":[],\"required\":false,\"confidence\":0.95},{\"fileColIndex\":6,\"fieldNameEn\":\"personRegionId\",\"hints\":[],\"required\":false,\"confidence\":0.95},{\"fileColIndex\":7,\"fieldNameEn\":\"personCellId\",\"hints\":[],\"required\":false,\"confidence\":0.95},{\"fileColIndex\":8,\"fieldNameEn\":\"otherName\",\"hints\":[],\"required\":false,\"confidence\":0.95},{\"fileColIndex\":9,\"fieldNameEn\":\"personCertNo\",\"hints\":[],\"required\":false,\"confidence\":0.95},{\"fileColIndex\":10,\"fieldNameEn\":\"otherCertNo\",\"hints\":[],\"required\":false,\"confidence\":0.95},{\"fileColIndex\":11,\"fieldNameEn\":\"personPhoneArea\",\"hints\":[],\"required\":false,\"confidence\":0.95},{\"fileColIndex\":12,\"fieldNameEn\":\"otherPhoneArea\",\"hints\":[],\"required\":false,\"confidence\":0.95},{\"fileColIndex\":13,\"fieldNameEn\":\"operatorId\",\"hints\":[],\"required\":false,\"confidence\":0.95},{\"fileColIndex\":14,\"fieldNameEn\":\"callType\",\"hints\":[],\"required\":false,\"confidence\":0.95},{\"fileColIndex\":15,\"fieldNameEn\":\"remark\",\"hints\":[],\"required\":false,\"confidence\":0.95},{\"fileColIndex\":16,\"fieldNameEn\":\"callLocal\",\"hints\":[],\"required\":false,\"confidence\":0.95}],\"confidence\":0.95,\"reason\":\"17列与模板#3完全对应,仅个别列名用别名(主叫号码→本机号码、通话起始时点→呼叫开始时间),形状全部吻合\"}",
  361. "detail": "{\"load\":{\"source\":12,\"loaded\":12,\"rejected\":0,\"warned\":0,\"unprocessed\":0,\"reasons\":{},\"columns\":{},\"optional\":{},\"samples\":[]}}",
  362. "model_name": "Ollama:qwen",
  363. "update_time": "2026-10-26 11:25:54.586235"
  364. }
  365. }
  366. ],
  367. "smart_clean": {
  368. "code": 200,
  369. "message": "",
  370. "data": {
  371. "batchId": "2114558923641462784",
  372. "stage": "JUDGING",
  373. "fileCount": 3,
  374. "sheetTotal": 3,
  375. "matchedCount": 1,
  376. "aiSheetCount": 2
  377. }
  378. },
  379. "batch_final": {
  380. "stage": "DONE",
  381. "fileCount": 3,
  382. "sheetTotal": 3,
  383. "matchedCount": 1,
  384. "aiJudgedCount": 2,
  385. "existingHitCount": 0,
  386. "aiLoadCount": 2,
  387. "loadedRows": "24",
  388. "rejectedRows": "0",
  389. "unprocessedRows": "0",
  390. "selfBuiltCount": 0,
  391. "needReviewCount": 0,
  392. "failedCount": 0,
  393. "needReview": []
  394. },
  395. "jobs": [
  396. {
  397. "job_id": 2114558927147900928,
  398. "sheet_id": 2114558925893804032,
  399. "status": "SUCCESS",
  400. "exit_code": "B",
  401. "matched_by": "LLM",
  402. "match_tier": "STRONG",
  403. "ref_template_id": null,
  404. "ai_template_id": 2114559115165966336,
  405. "llm_calls": 1,
  406. "confidence": "0.9500",
  407. "token_in": 6039,
  408. "token_out": 691,
  409. "cost_ms": 273,
  410. "row_total": 12,
  411. "row_loaded": 12,
  412. "row_rejected": 0,
  413. "row_warned": 0,
  414. "row_unprocessed": 0,
  415. "fail_reason": null,
  416. "draft": "{\"templateNo\":3,\"headerRow\":0,\"category\":\"COMMUNICATION\",\"structHints\":[\"TRIM_VALUES\"],\"binds\":[{\"fileColIndex\":0,\"fieldNameEn\":\"personName\",\"hints\":[],\"required\":false,\"confidence\":0.95},{\"fileColIndex\":1,\"fieldNameEn\":\"personPhone\",\"hints\":[],\"required\":true,\"confidence\":0.95},{\"fileColIndex\":2,\"fieldNameEn\":\"otherPhone\",\"hints\":[],\"required\":true,\"confidence\":0.95},{\"fileColIndex\":3,\"fieldNameEn\":\"callDirection\",\"hints\":[],\"required\":true,\"confidence\":0.95},{\"fileColIndex\":4,\"fieldNameEn\":\"callDateTime\",\"hints\":[],\"required\":true,\"confidence\":0.95},{\"fileColIndex\":5,\"fieldNameEn\":\"duration\",\"hints\":[],\"required\":false,\"confidence\":0.95},{\"fileColIndex\":6,\"fieldNameEn\":\"personRegionId\",\"hints\":[],\"required\":false,\"confidence\":0.95},{\"fileColIndex\":7,\"fieldNameEn\":\"personCellId\",\"hints\":[],\"required\":false,\"confidence\":0.95},{\"fileColIndex\":8,\"fieldNameEn\":\"otherName\",\"hints\":[],\"required\":false,\"confidence\":0.95},{\"fileColIndex\":9,\"fieldNameEn\":\"personCertNo\",\"hints\":[],\"required\":false,\"confidence\":0.95},{\"fileColIndex\":10,\"fieldNameEn\":\"otherCertNo\",\"hints\":[],\"required\":false,\"confidence\":0.95},{\"fileColIndex\":11,\"fieldNameEn\":\"personPhoneArea\",\"hints\":[],\"required\":false,\"confidence\":0.95},{\"fileColIndex\":12,\"fieldNameEn\":\"otherPhoneArea\",\"hints\":[],\"required\":false,\"confidence\":0.95},{\"fileColIndex\":13,\"fieldNameEn\":\"operatorId\",\"hints\":[],\"required\":false,\"confidence\":0.95},{\"fileColIndex\":14,\"fieldNameEn\":\"callType\",\"hints\":[],\"required\":false,\"confidence\":0.95},{\"fileColIndex\":15,\"fieldNameEn\":\"remark\",\"hints\":[],\"required\":false,\"confidence\":0.95},{\"fileColIndex\":16,\"fieldNameEn\":\"callLocal\",\"hints\":[],\"required\":false,\"confidence\":0.95}],\"confidence\":0.95,\"reason\":\"17列与模板#3完全对应,仅个别列名用别名(主叫号码→本机号码、通话起始时点→呼叫开始时间),形状全部吻合\"}",
  417. "detail": "{\"load\":{\"source\":12,\"loaded\":12,\"rejected\":0,\"warned\":0,\"unprocessed\":0,\"reasons\":{},\"columns\":{},\"optional\":{},\"samples\":[]}}",
  418. "model_name": "Ollama:qwen",
  419. "update_time": "2026-10-26 11:25:54.586235"
  420. }
  421. ],
  422. "ai_templates": [
  423. {
  424. "id": 2114559115165966336,
  425. "table_name_cn": "通信记录",
  426. "headers": "使用人姓名,主叫号码,被叫号码,话单类型,通话起始时点,呼叫时长,本机LAC号,本机cellid,对方姓名,使用人证件号码,对方证件号码,本机号码归属地,对方号码归属地,本机归属运营商,通话类型,备注,通话所在地",
  427. "status": "ONLINE",
  428. "confidence": "0.9500",
  429. "match_tier": "STRONG",
  430. "fields": [
  431. {
  432. "column_name": "c0",
  433. "field_name_cn": "使用人姓名",
  434. "field_type": "TEXT",
  435. "required": 0,
  436. "field_sort": 1
  437. },
  438. {
  439. "column_name": "c1",
  440. "field_name_cn": "主叫号码",
  441. "field_type": "PHONE",
  442. "required": 1,
  443. "field_sort": 2
  444. },
  445. {
  446. "column_name": "c2",
  447. "field_name_cn": "被叫号码",
  448. "field_type": "PHONE",
  449. "required": 1,
  450. "field_sort": 3
  451. },
  452. {
  453. "column_name": "c3",
  454. "field_name_cn": "话单类型",
  455. "field_type": "CALL_DIRECTION",
  456. "required": 1,
  457. "field_sort": 4
  458. },
  459. {
  460. "column_name": "c4",
  461. "field_name_cn": "通话起始时点",
  462. "field_type": "DATE_TIME",
  463. "required": 1,
  464. "field_sort": 5
  465. },
  466. {
  467. "column_name": "c5",
  468. "field_name_cn": "呼叫时长",
  469. "field_type": "TEXT",
  470. "required": 0,
  471. "field_sort": 6
  472. },
  473. {
  474. "column_name": "c6",
  475. "field_name_cn": "本机LAC号",
  476. "field_type": "TEXT",
  477. "required": 0,
  478. "field_sort": 7
  479. },
  480. {
  481. "column_name": "c7",
  482. "field_name_cn": "本机cellid",
  483. "field_type": "TEXT",
  484. "required": 0,
  485. "field_sort": 8
  486. },
  487. {
  488. "column_name": "c8",
  489. "field_name_cn": "对方姓名",
  490. "field_type": "TEXT",
  491. "required": 0,
  492. "field_sort": 9
  493. },
  494. {
  495. "column_name": "c9",
  496. "field_name_cn": "使用人证件号码",
  497. "field_type": "TEXT",
  498. "required": 0,
  499. "field_sort": 10
  500. },
  501. {
  502. "column_name": "c10",
  503. "field_name_cn": "对方证件号码",
  504. "field_type": "TEXT",
  505. "required": 0,
  506. "field_sort": 11
  507. },
  508. {
  509. "column_name": "c11",
  510. "field_name_cn": "本机号码归属地",
  511. "field_type": "TEXT",
  512. "required": 0,
  513. "field_sort": 12
  514. },
  515. {
  516. "column_name": "c12",
  517. "field_name_cn": "对方号码归属地",
  518. "field_type": "TEXT",
  519. "required": 0,
  520. "field_sort": 13
  521. },
  522. {
  523. "column_name": "c13",
  524. "field_name_cn": "本机归属运营商",
  525. "field_type": "TEXT",
  526. "required": 0,
  527. "field_sort": 14
  528. },
  529. {
  530. "column_name": "c14",
  531. "field_name_cn": "通话类型",
  532. "field_type": "TEXT",
  533. "required": 0,
  534. "field_sort": 15
  535. },
  536. {
  537. "column_name": "c15",
  538. "field_name_cn": "备注",
  539. "field_type": "TEXT",
  540. "required": 0,
  541. "field_sort": 16
  542. },
  543. {
  544. "column_name": "c16",
  545. "field_name_cn": "通话所在地",
  546. "field_type": "TEXT",
  547. "required": 0,
  548. "field_sort": 17
  549. }
  550. ]
  551. }
  552. ]
  553. },
  554. {
  555. "test_id": "CALL-08",
  556. "file": "calls\\CALL-08_导出话单_标准.xlsx",
  557. "expected_template_id": 42,
  558. "template_id": 42,
  559. "mutation": {},
  560. "notes": "逐字同表头,预期既有直中",
  561. "upload_code": 200,
  562. "upload_message": "",
  563. "upload": "OK",
  564. "batch_id": "2114559120123633664",
  565. "file_id": "2114559120127827968",
  566. "sheets": [
  567. {
  568. "sheet_id": "2114559120157188096",
  569. "sheet_name": "导出话单",
  570. "file_status": "SHEET_TEMPLATE_MATCHED_SUCCESS",
  571. "template_id": 42,
  572. "table_name": "导出话单",
  573. "line_no": 2,
  574. "data_num": 12,
  575. "main_id": 1,
  576. "job": null
  577. }
  578. ],
  579. "smart_clean": {
  580. "code": 200,
  581. "message": "",
  582. "data": {
  583. "batchId": "2114559120123633664",
  584. "stage": "JUDGING",
  585. "fileCount": 3,
  586. "sheetTotal": 3,
  587. "matchedCount": 2,
  588. "aiSheetCount": 1
  589. }
  590. },
  591. "batch_final": {
  592. "stage": "DONE",
  593. "fileCount": 3,
  594. "sheetTotal": 3,
  595. "matchedCount": 2,
  596. "aiJudgedCount": 1,
  597. "existingHitCount": 0,
  598. "aiLoadCount": 1,
  599. "loadedRows": "10",
  600. "rejectedRows": "0",
  601. "unprocessedRows": "0",
  602. "selfBuiltCount": 0,
  603. "needReviewCount": 0,
  604. "failedCount": 0,
  605. "needReview": []
  606. },
  607. "jobs": [],
  608. "ai_templates": [],
  609. "chunk_batch": {
  610. "stage": "DONE",
  611. "fileCount": 3,
  612. "sheetTotal": 3,
  613. "matchedCount": 2,
  614. "aiJudgedCount": 1,
  615. "existingHitCount": 0,
  616. "aiLoadCount": 1,
  617. "loadedRows": "10",
  618. "rejectedRows": "0",
  619. "unprocessedRows": "0",
  620. "selfBuiltCount": 0,
  621. "needReviewCount": 0,
  622. "failedCount": 0,
  623. "needReview": []
  624. }
  625. },
  626. {
  627. "test_id": "CALL-09",
  628. "file": "calls\\CALL-09_导出话单_同义.xlsx",
  629. "expected_template_id": 42,
  630. "template_id": 42,
  631. "mutation": {
  632. "本方号码": "本机号码",
  633. "主被叫标识": "通话类型",
  634. "本方姓名": "使用人姓名"
  635. },
  636. "notes": "换词,强制 AI",
  637. "upload_code": 200,
  638. "upload_message": "",
  639. "upload": "OK",
  640. "batch_id": "2114559120123633664",
  641. "file_id": "2114559121214152705",
  642. "sheets": [
  643. {
  644. "sheet_id": "2114559121239318528",
  645. "sheet_name": "导出话单",
  646. "file_status": "SHEET_TEMPLATE_MATCHED_SUCCESS",
  647. "template_id": 3,
  648. "table_name": "通信登记信息",
  649. "line_no": 1,
  650. "data_num": 11,
  651. "main_id": 3,
  652. "job": null
  653. }
  654. ],
  655. "smart_clean": {
  656. "code": 200,
  657. "message": "",
  658. "data": {
  659. "batchId": "2114559120123633664",
  660. "stage": "JUDGING",
  661. "fileCount": 3,
  662. "sheetTotal": 3,
  663. "matchedCount": 2,
  664. "aiSheetCount": 1
  665. }
  666. },
  667. "batch_final": {
  668. "stage": "DONE",
  669. "fileCount": 3,
  670. "sheetTotal": 3,
  671. "matchedCount": 2,
  672. "aiJudgedCount": 1,
  673. "existingHitCount": 0,
  674. "aiLoadCount": 1,
  675. "loadedRows": "10",
  676. "rejectedRows": "0",
  677. "unprocessedRows": "0",
  678. "selfBuiltCount": 0,
  679. "needReviewCount": 0,
  680. "failedCount": 0,
  681. "needReview": []
  682. },
  683. "jobs": [],
  684. "ai_templates": []
  685. },
  686. {
  687. "test_id": "CALL-10",
  688. "file": "calls\\CALL-10_移动语音话单_同义.xlsx",
  689. "expected_template_id": 1557528396,
  690. "template_id": 1557528396,
  691. "mutation": {
  692. "收费号码": "本机号码",
  693. "对端号码": "对方号码"
  694. },
  695. "notes": "移动语音话单换词,强制 AI; 预期 1557528396",
  696. "upload_code": 200,
  697. "upload_message": "",
  698. "upload": "OK",
  699. "batch_id": "2114559120123633664",
  700. "file_id": "2114559122266923008",
  701. "sheets": [
  702. {
  703. "sheet_id": "2114559122292088832",
  704. "sheet_name": "移动话单",
  705. "file_status": "SHEET_TEMPLATE_MATCHED_FAIL",
  706. "template_id": null,
  707. "table_name": null,
  708. "line_no": null,
  709. "data_num": 11,
  710. "main_id": null,
  711. "job": {
  712. "job_id": 2114559123445522432,
  713. "sheet_id": 2114559122292088832,
  714. "status": "SUCCESS",
  715. "exit_code": "B",
  716. "matched_by": "LLM",
  717. "match_tier": "STRONG",
  718. "ref_template_id": null,
  719. "ai_template_id": 2114559292509528064,
  720. "llm_calls": 1,
  721. "confidence": "0.9500",
  722. "token_in": 4493,
  723. "token_out": 381,
  724. "cost_ms": 153,
  725. "row_total": 10,
  726. "row_loaded": 10,
  727. "row_rejected": 0,
  728. "row_warned": 0,
  729. "row_unprocessed": 0,
  730. "fail_reason": null,
  731. "draft": "{\"templateNo\":2,\"headerRow\":0,\"category\":\"COMMUNICATION\",\"structHints\":[\"TRIM_VALUES\"],\"binds\":[{\"fileColIndex\":0,\"fieldNameEn\":\"personPhone\",\"hints\":[],\"required\":true,\"confidence\":0.95},{\"fileColIndex\":1,\"fieldNameEn\":\"otherPhone\",\"hints\":[],\"required\":true,\"confidence\":0.95},{\"fileColIndex\":2,\"fieldNameEn\":\"callDirection\",\"hints\":[],\"required\":true,\"confidence\":0.95},{\"fileColIndex\":3,\"fieldNameEn\":\"callDateTime\",\"hints\":[],\"required\":true,\"confidence\":0.95},{\"fileColIndex\":4,\"fieldNameEn\":\"duration\",\"hints\":[],\"required\":false,\"confidence\":0.9},{\"fileColIndex\":5,\"fieldNameEn\":\"personRegionId\",\"hints\":[],\"required\":false,\"confidence\":0.9},{\"fileColIndex\":6,\"fieldNameEn\":\"personCellId\",\"hints\":[],\"required\":false,\"confidence\":0.9}],\"confidence\":0.95,\"reason\":\"7列与模板#2完全对应,列名和形状均吻合\"}",
  732. "detail": "{\"load\":{\"source\":10,\"loaded\":10,\"rejected\":0,\"warned\":0,\"unprocessed\":0,\"reasons\":{},\"columns\":{},\"optional\":{},\"samples\":[]}}",
  733. "model_name": "Ollama:qwen",
  734. "update_time": "2026-10-26 11:26:36.750746"
  735. }
  736. }
  737. ],
  738. "smart_clean": {
  739. "code": 200,
  740. "message": "",
  741. "data": {
  742. "batchId": "2114559120123633664",
  743. "stage": "JUDGING",
  744. "fileCount": 3,
  745. "sheetTotal": 3,
  746. "matchedCount": 2,
  747. "aiSheetCount": 1
  748. }
  749. },
  750. "batch_final": {
  751. "stage": "DONE",
  752. "fileCount": 3,
  753. "sheetTotal": 3,
  754. "matchedCount": 2,
  755. "aiJudgedCount": 1,
  756. "existingHitCount": 0,
  757. "aiLoadCount": 1,
  758. "loadedRows": "10",
  759. "rejectedRows": "0",
  760. "unprocessedRows": "0",
  761. "selfBuiltCount": 0,
  762. "needReviewCount": 0,
  763. "failedCount": 0,
  764. "needReview": []
  765. },
  766. "jobs": [
  767. {
  768. "job_id": 2114559123445522432,
  769. "sheet_id": 2114559122292088832,
  770. "status": "SUCCESS",
  771. "exit_code": "B",
  772. "matched_by": "LLM",
  773. "match_tier": "STRONG",
  774. "ref_template_id": null,
  775. "ai_template_id": 2114559292509528064,
  776. "llm_calls": 1,
  777. "confidence": "0.9500",
  778. "token_in": 4493,
  779. "token_out": 381,
  780. "cost_ms": 153,
  781. "row_total": 10,
  782. "row_loaded": 10,
  783. "row_rejected": 0,
  784. "row_warned": 0,
  785. "row_unprocessed": 0,
  786. "fail_reason": null,
  787. "draft": "{\"templateNo\":2,\"headerRow\":0,\"category\":\"COMMUNICATION\",\"structHints\":[\"TRIM_VALUES\"],\"binds\":[{\"fileColIndex\":0,\"fieldNameEn\":\"personPhone\",\"hints\":[],\"required\":true,\"confidence\":0.95},{\"fileColIndex\":1,\"fieldNameEn\":\"otherPhone\",\"hints\":[],\"required\":true,\"confidence\":0.95},{\"fileColIndex\":2,\"fieldNameEn\":\"callDirection\",\"hints\":[],\"required\":true,\"confidence\":0.95},{\"fileColIndex\":3,\"fieldNameEn\":\"callDateTime\",\"hints\":[],\"required\":true,\"confidence\":0.95},{\"fileColIndex\":4,\"fieldNameEn\":\"duration\",\"hints\":[],\"required\":false,\"confidence\":0.9},{\"fileColIndex\":5,\"fieldNameEn\":\"personRegionId\",\"hints\":[],\"required\":false,\"confidence\":0.9},{\"fileColIndex\":6,\"fieldNameEn\":\"personCellId\",\"hints\":[],\"required\":false,\"confidence\":0.9}],\"confidence\":0.95,\"reason\":\"7列与模板#2完全对应,列名和形状均吻合\"}",
  788. "detail": "{\"load\":{\"source\":10,\"loaded\":10,\"rejected\":0,\"warned\":0,\"unprocessed\":0,\"reasons\":{},\"columns\":{},\"optional\":{},\"samples\":[]}}",
  789. "model_name": "Ollama:qwen",
  790. "update_time": "2026-10-26 11:26:36.750746"
  791. }
  792. ],
  793. "ai_templates": [
  794. {
  795. "id": 2114559292509528064,
  796. "table_name_cn": "移动话单",
  797. "headers": "本机号码,对方号码,通话类型,开始时间,通话时长,基站号,小区代码",
  798. "status": "ONLINE",
  799. "confidence": "0.9500",
  800. "match_tier": "STRONG",
  801. "fields": [
  802. {
  803. "column_name": "c0",
  804. "field_name_cn": "本机号码",
  805. "field_type": "PHONE",
  806. "required": 1,
  807. "field_sort": 1
  808. },
  809. {
  810. "column_name": "c1",
  811. "field_name_cn": "对方号码",
  812. "field_type": "PHONE",
  813. "required": 1,
  814. "field_sort": 2
  815. },
  816. {
  817. "column_name": "c2",
  818. "field_name_cn": "通话类型",
  819. "field_type": "CALL_DIRECTION",
  820. "required": 1,
  821. "field_sort": 3
  822. },
  823. {
  824. "column_name": "c3",
  825. "field_name_cn": "开始时间",
  826. "field_type": "DATE_TIME",
  827. "required": 1,
  828. "field_sort": 4
  829. },
  830. {
  831. "column_name": "c4",
  832. "field_name_cn": "通话时长",
  833. "field_type": "TEXT",
  834. "required": 0,
  835. "field_sort": 5
  836. },
  837. {
  838. "column_name": "c5",
  839. "field_name_cn": "基站号",
  840. "field_type": "TEXT",
  841. "required": 0,
  842. "field_sort": 6
  843. },
  844. {
  845. "column_name": "c6",
  846. "field_name_cn": "小区代码",
  847. "field_type": "TEXT",
  848. "required": 0,
  849. "field_sort": 7
  850. }
  851. ]
  852. }
  853. ]
  854. },
  855. {
  856. "test_id": "CALL-17",
  857. "file": "calls\\CALL-17_通信日期时间_同义.xlsx",
  858. "expected_template_id": 64,
  859. "template_id": 64,
  860. "mutation": {
  861. "通话日期": "通话日期时间"
  862. },
  863. "notes": "通信日期时间换词,强制 AI; 预期 64",
  864. "upload_code": 200,
  865. "upload_message": "",
  866. "upload": "OK",
  867. "batch_id": "2114559302726852608",
  868. "file_id": "2114559302731046912",
  869. "sheets": [
  870. {
  871. "sheet_id": "2114559302756212736",
  872. "sheet_name": "通信记录日期时间",
  873. "file_status": "SHEET_TEMPLATE_MATCHED_SUCCESS",
  874. "template_id": 3,
  875. "table_name": "通信登记信息",
  876. "line_no": 1,
  877. "data_num": 11,
  878. "main_id": 3,
  879. "job": null
  880. }
  881. ],
  882. "smart_clean": {
  883. "code": 200,
  884. "message": "",
  885. "data": {
  886. "batchId": "2114559302726852608",
  887. "stage": "JUDGING",
  888. "fileCount": 3,
  889. "sheetTotal": 3,
  890. "matchedCount": 2,
  891. "aiSheetCount": 1
  892. }
  893. },
  894. "batch_final": {
  895. "stage": "DONE",
  896. "fileCount": 3,
  897. "sheetTotal": 3,
  898. "matchedCount": 2,
  899. "aiJudgedCount": 1,
  900. "existingHitCount": 0,
  901. "aiLoadCount": 1,
  902. "loadedRows": "12",
  903. "rejectedRows": "0",
  904. "unprocessedRows": "0",
  905. "selfBuiltCount": 0,
  906. "needReviewCount": 0,
  907. "failedCount": 0,
  908. "needReview": []
  909. },
  910. "jobs": [],
  911. "ai_templates": [],
  912. "chunk_batch": {
  913. "stage": "DONE",
  914. "fileCount": 3,
  915. "sheetTotal": 3,
  916. "matchedCount": 2,
  917. "aiJudgedCount": 1,
  918. "existingHitCount": 0,
  919. "aiLoadCount": 1,
  920. "loadedRows": "12",
  921. "rejectedRows": "0",
  922. "unprocessedRows": "0",
  923. "selfBuiltCount": 0,
  924. "needReviewCount": 0,
  925. "failedCount": 0,
  926. "needReview": []
  927. }
  928. },
  929. {
  930. "test_id": "CALL-18",
  931. "file": "calls\\CALL-18_主被叫方向.xlsx",
  932. "expected_template_id": 1,
  933. "template_id": 1,
  934. "mutation": {
  935. "话单类型": "呼叫类型",
  936. "本机号码": "本机电话号码",
  937. "_dirty": "direction"
  938. },
  939. "notes": "方向值混用主叫/被叫/呼入/呼出",
  940. "upload_code": 200,
  941. "upload_message": "",
  942. "upload": "OK",
  943. "batch_id": "2114559302726852608",
  944. "file_id": "2114559303771234304",
  945. "sheets": [
  946. {
  947. "sheet_id": "2114559303796400128",
  948. "sheet_name": "通信记录",
  949. "file_status": "SHEET_TEMPLATE_MATCHED_FAIL",
  950. "template_id": null,
  951. "table_name": null,
  952. "line_no": null,
  953. "data_num": 13,
  954. "main_id": null,
  955. "job": {
  956. "job_id": 2114559306061324288,
  957. "sheet_id": 2114559303796400128,
  958. "status": "SUCCESS",
  959. "exit_code": "B",
  960. "matched_by": "LLM",
  961. "match_tier": "STRONG",
  962. "ref_template_id": null,
  963. "ai_template_id": 2114559632961183744,
  964. "llm_calls": 1,
  965. "confidence": "0.9500",
  966. "token_in": 6249,
  967. "token_out": 945,
  968. "cost_ms": 263,
  969. "row_total": 12,
  970. "row_loaded": 12,
  971. "row_rejected": 0,
  972. "row_warned": 0,
  973. "row_unprocessed": 0,
  974. "fail_reason": null,
  975. "draft": "{\"templateNo\":2,\"headerRow\":0,\"category\":\"COMMUNICATION\",\"structHints\":[\"TRIM_VALUES\"],\"binds\":[{\"fileColIndex\":0,\"fieldNameEn\":\"personName\",\"hints\":[],\"required\":false,\"confidence\":0.95},{\"fileColIndex\":1,\"fieldNameEn\":\"personPhone\",\"hints\":[],\"required\":true,\"confidence\":0.95},{\"fileColIndex\":2,\"fieldNameEn\":\"otherPhone\",\"hints\":[],\"required\":true,\"confidence\":0.95},{\"fileColIndex\":3,\"fieldNameEn\":\"callDirection\",\"hints\":[],\"required\":true,\"confidence\":0.95},{\"fileColIndex\":4,\"fieldNameEn\":\"callDateTime\",\"hints\":[],\"required\":true,\"confidence\":0.95},{\"fileColIndex\":5,\"fieldNameEn\":\"duration\",\"hints\":[],\"required\":false,\"confidence\":0.95},{\"fileColIndex\":6,\"fieldNameEn\":\"personRegionId\",\"hints\":[],\"required\":false,\"confidence\":0.95},{\"fileColIndex\":7,\"fieldNameEn\":\"personCellId\",\"hints\":[],\"required\":false,\"confidence\":0.95},{\"fileColIndex\":8,\"fieldNameEn\":\"otherName\",\"hints\":[],\"required\":false,\"confidence\":0.95},{\"fileColIndex\":9,\"fieldNameEn\":\"personCertNo\",\"hints\":[],\"required\":false,\"confidence\":0.95},{\"fileColIndex\":10,\"fieldNameEn\":\"otherCertNo\",\"hints\":[],\"required\":false,\"confidence\":0.95},{\"fileColIndex\":11,\"fieldNameEn\":\"personPhoneArea\",\"hints\":[],\"required\":false,\"confidence\":0.95},{\"fileColIndex\":12,\"fieldNameEn\":\"otherPhoneArea\",\"hints\":[],\"required\":false,\"confidence\":0.95},{\"fileColIndex\":13,\"fieldNameEn\":\"operatorId\",\"hints\":[],\"required\":false,\"confidence\":0.95},{\"fileColIndex\":14,\"fieldNameEn\":\"callType\",\"hints\":[],\"required\":false,\"confidence\":0.95},{\"fileColIndex\":15,\"fieldNameEn\":\"remark\",\"hints\":[],\"required\":false,\"confidence\":0.95},{\"fileColIndex\":16,\"fieldNameEn\":\"callLocal\",\"hints\":[],\"required\":false,\"confidence\":0.95}],\"confidence\":0.95,\"reason\":\"表头与模板#2逐列匹配,仅'本机电话号码'为同义别名、'呼叫类型'对应'话单类型',17列形状完全吻合。\"}",
  976. "detail": "{\"load\":{\"source\":12,\"loaded\":12,\"rejected\":0,\"warned\":0,\"unprocessed\":0,\"reasons\":{},\"columns\":{},\"optional\":{},\"samples\":[]}}",
  977. "model_name": "Ollama:qwen",
  978. "update_time": "2026-10-26 11:27:58.031387"
  979. }
  980. }
  981. ],
  982. "smart_clean": {
  983. "code": 200,
  984. "message": "",
  985. "data": {
  986. "batchId": "2114559302726852608",
  987. "stage": "JUDGING",
  988. "fileCount": 3,
  989. "sheetTotal": 3,
  990. "matchedCount": 2,
  991. "aiSheetCount": 1
  992. }
  993. },
  994. "batch_final": {
  995. "stage": "DONE",
  996. "fileCount": 3,
  997. "sheetTotal": 3,
  998. "matchedCount": 2,
  999. "aiJudgedCount": 1,
  1000. "existingHitCount": 0,
  1001. "aiLoadCount": 1,
  1002. "loadedRows": "12",
  1003. "rejectedRows": "0",
  1004. "unprocessedRows": "0",
  1005. "selfBuiltCount": 0,
  1006. "needReviewCount": 0,
  1007. "failedCount": 0,
  1008. "needReview": []
  1009. },
  1010. "jobs": [
  1011. {
  1012. "job_id": 2114559306061324288,
  1013. "sheet_id": 2114559303796400128,
  1014. "status": "SUCCESS",
  1015. "exit_code": "B",
  1016. "matched_by": "LLM",
  1017. "match_tier": "STRONG",
  1018. "ref_template_id": null,
  1019. "ai_template_id": 2114559632961183744,
  1020. "llm_calls": 1,
  1021. "confidence": "0.9500",
  1022. "token_in": 6249,
  1023. "token_out": 945,
  1024. "cost_ms": 263,
  1025. "row_total": 12,
  1026. "row_loaded": 12,
  1027. "row_rejected": 0,
  1028. "row_warned": 0,
  1029. "row_unprocessed": 0,
  1030. "fail_reason": null,
  1031. "draft": "{\"templateNo\":2,\"headerRow\":0,\"category\":\"COMMUNICATION\",\"structHints\":[\"TRIM_VALUES\"],\"binds\":[{\"fileColIndex\":0,\"fieldNameEn\":\"personName\",\"hints\":[],\"required\":false,\"confidence\":0.95},{\"fileColIndex\":1,\"fieldNameEn\":\"personPhone\",\"hints\":[],\"required\":true,\"confidence\":0.95},{\"fileColIndex\":2,\"fieldNameEn\":\"otherPhone\",\"hints\":[],\"required\":true,\"confidence\":0.95},{\"fileColIndex\":3,\"fieldNameEn\":\"callDirection\",\"hints\":[],\"required\":true,\"confidence\":0.95},{\"fileColIndex\":4,\"fieldNameEn\":\"callDateTime\",\"hints\":[],\"required\":true,\"confidence\":0.95},{\"fileColIndex\":5,\"fieldNameEn\":\"duration\",\"hints\":[],\"required\":false,\"confidence\":0.95},{\"fileColIndex\":6,\"fieldNameEn\":\"personRegionId\",\"hints\":[],\"required\":false,\"confidence\":0.95},{\"fileColIndex\":7,\"fieldNameEn\":\"personCellId\",\"hints\":[],\"required\":false,\"confidence\":0.95},{\"fileColIndex\":8,\"fieldNameEn\":\"otherName\",\"hints\":[],\"required\":false,\"confidence\":0.95},{\"fileColIndex\":9,\"fieldNameEn\":\"personCertNo\",\"hints\":[],\"required\":false,\"confidence\":0.95},{\"fileColIndex\":10,\"fieldNameEn\":\"otherCertNo\",\"hints\":[],\"required\":false,\"confidence\":0.95},{\"fileColIndex\":11,\"fieldNameEn\":\"personPhoneArea\",\"hints\":[],\"required\":false,\"confidence\":0.95},{\"fileColIndex\":12,\"fieldNameEn\":\"otherPhoneArea\",\"hints\":[],\"required\":false,\"confidence\":0.95},{\"fileColIndex\":13,\"fieldNameEn\":\"operatorId\",\"hints\":[],\"required\":false,\"confidence\":0.95},{\"fileColIndex\":14,\"fieldNameEn\":\"callType\",\"hints\":[],\"required\":false,\"confidence\":0.95},{\"fileColIndex\":15,\"fieldNameEn\":\"remark\",\"hints\":[],\"required\":false,\"confidence\":0.95},{\"fileColIndex\":16,\"fieldNameEn\":\"callLocal\",\"hints\":[],\"required\":false,\"confidence\":0.95}],\"confidence\":0.95,\"reason\":\"表头与模板#2逐列匹配,仅'本机电话号码'为同义别名、'呼叫类型'对应'话单类型',17列形状完全吻合。\"}",
  1032. "detail": "{\"load\":{\"source\":12,\"loaded\":12,\"rejected\":0,\"warned\":0,\"unprocessed\":0,\"reasons\":{},\"columns\":{},\"optional\":{},\"samples\":[]}}",
  1033. "model_name": "Ollama:qwen",
  1034. "update_time": "2026-10-26 11:27:58.031387"
  1035. }
  1036. ],
  1037. "ai_templates": [
  1038. {
  1039. "id": 2114559632961183744,
  1040. "table_name_cn": "通信记录",
  1041. "headers": "使用人姓名,本机电话号码,对方号码,呼叫类型,呼叫开始时间,呼叫时长,本机LAC号,本机cellid,对方姓名,使用人证件号码,对方证件号码,本机号码归属地,对方号码归属地,本机归属运营商,通话类型,备注,通话所在地",
  1042. "status": "ONLINE",
  1043. "confidence": "0.9500",
  1044. "match_tier": "STRONG",
  1045. "fields": [
  1046. {
  1047. "column_name": "c0",
  1048. "field_name_cn": "使用人姓名",
  1049. "field_type": "TEXT",
  1050. "required": 0,
  1051. "field_sort": 1
  1052. },
  1053. {
  1054. "column_name": "c1",
  1055. "field_name_cn": "本机电话号码",
  1056. "field_type": "PHONE",
  1057. "required": 1,
  1058. "field_sort": 2
  1059. },
  1060. {
  1061. "column_name": "c2",
  1062. "field_name_cn": "对方号码",
  1063. "field_type": "PHONE",
  1064. "required": 1,
  1065. "field_sort": 3
  1066. },
  1067. {
  1068. "column_name": "c3",
  1069. "field_name_cn": "呼叫类型",
  1070. "field_type": "CALL_DIRECTION",
  1071. "required": 1,
  1072. "field_sort": 4
  1073. },
  1074. {
  1075. "column_name": "c4",
  1076. "field_name_cn": "呼叫开始时间",
  1077. "field_type": "DATE_TIME",
  1078. "required": 1,
  1079. "field_sort": 5
  1080. },
  1081. {
  1082. "column_name": "c5",
  1083. "field_name_cn": "呼叫时长",
  1084. "field_type": "TEXT",
  1085. "required": 0,
  1086. "field_sort": 6
  1087. },
  1088. {
  1089. "column_name": "c6",
  1090. "field_name_cn": "本机LAC号",
  1091. "field_type": "TEXT",
  1092. "required": 0,
  1093. "field_sort": 7
  1094. },
  1095. {
  1096. "column_name": "c7",
  1097. "field_name_cn": "本机cellid",
  1098. "field_type": "TEXT",
  1099. "required": 0,
  1100. "field_sort": 8
  1101. },
  1102. {
  1103. "column_name": "c8",
  1104. "field_name_cn": "对方姓名",
  1105. "field_type": "TEXT",
  1106. "required": 0,
  1107. "field_sort": 9
  1108. },
  1109. {
  1110. "column_name": "c9",
  1111. "field_name_cn": "使用人证件号码",
  1112. "field_type": "TEXT",
  1113. "required": 0,
  1114. "field_sort": 10
  1115. },
  1116. {
  1117. "column_name": "c10",
  1118. "field_name_cn": "对方证件号码",
  1119. "field_type": "TEXT",
  1120. "required": 0,
  1121. "field_sort": 11
  1122. },
  1123. {
  1124. "column_name": "c11",
  1125. "field_name_cn": "本机号码归属地",
  1126. "field_type": "TEXT",
  1127. "required": 0,
  1128. "field_sort": 12
  1129. },
  1130. {
  1131. "column_name": "c12",
  1132. "field_name_cn": "对方号码归属地",
  1133. "field_type": "TEXT",
  1134. "required": 0,
  1135. "field_sort": 13
  1136. },
  1137. {
  1138. "column_name": "c13",
  1139. "field_name_cn": "本机归属运营商",
  1140. "field_type": "TEXT",
  1141. "required": 0,
  1142. "field_sort": 14
  1143. },
  1144. {
  1145. "column_name": "c14",
  1146. "field_name_cn": "通话类型",
  1147. "field_type": "TEXT",
  1148. "required": 0,
  1149. "field_sort": 15
  1150. },
  1151. {
  1152. "column_name": "c15",
  1153. "field_name_cn": "备注",
  1154. "field_type": "TEXT",
  1155. "required": 0,
  1156. "field_sort": 16
  1157. },
  1158. {
  1159. "column_name": "c16",
  1160. "field_name_cn": "通话所在地",
  1161. "field_type": "TEXT",
  1162. "required": 0,
  1163. "field_sort": 17
  1164. }
  1165. ]
  1166. }
  1167. ]
  1168. },
  1169. {
  1170. "test_id": "CALL-19",
  1171. "file": "calls\\CALL-19_时长格式.xlsx",
  1172. "expected_template_id": 1,
  1173. "template_id": 1,
  1174. "mutation": {
  1175. "话单类型": "呼叫类型",
  1176. "呼叫时长": "通话时长",
  1177. "_dirty": "duration"
  1178. },
  1179. "notes": "时长格式混用",
  1180. "upload_code": 200,
  1181. "upload_message": "",
  1182. "upload": "OK",
  1183. "batch_id": "2114559302726852608",
  1184. "file_id": "2114559304874336256",
  1185. "sheets": [
  1186. {
  1187. "sheet_id": "2114559304899502080",
  1188. "sheet_name": "通信记录",
  1189. "file_status": "SHEET_TEMPLATE_MATCHED_SUCCESS",
  1190. "template_id": 3,
  1191. "table_name": "通信登记信息",
  1192. "line_no": 1,
  1193. "data_num": 13,
  1194. "main_id": 3,
  1195. "job": null
  1196. }
  1197. ],
  1198. "smart_clean": {
  1199. "code": 200,
  1200. "message": "",
  1201. "data": {
  1202. "batchId": "2114559302726852608",
  1203. "stage": "JUDGING",
  1204. "fileCount": 3,
  1205. "sheetTotal": 3,
  1206. "matchedCount": 2,
  1207. "aiSheetCount": 1
  1208. }
  1209. },
  1210. "batch_final": {
  1211. "stage": "DONE",
  1212. "fileCount": 3,
  1213. "sheetTotal": 3,
  1214. "matchedCount": 2,
  1215. "aiJudgedCount": 1,
  1216. "existingHitCount": 0,
  1217. "aiLoadCount": 1,
  1218. "loadedRows": "12",
  1219. "rejectedRows": "0",
  1220. "unprocessedRows": "0",
  1221. "selfBuiltCount": 0,
  1222. "needReviewCount": 0,
  1223. "failedCount": 0,
  1224. "needReview": []
  1225. },
  1226. "jobs": [],
  1227. "ai_templates": []
  1228. }
  1229. ]