📖 教 AI 读单据
看懂系统现在认得哪些词、它们会被当成 标签 / 真实值 / 占位符 / 还是跳过。先看,再决定要不要改。
📖 词库 = 教 AI 怎么读单据:前几类教「怎么抓」,最后「校验规则」教「抓完怎么自检」。点上方任一类型看它的作用。
| 词条 | 类型 | 看到这些写法 | 动作 | 抓成 |
|---|---|---|---|---|
| PC/USD | 🚫 跳过词 | PC/USDPCS/CTNkg+1 | 忽略·不抓 | — |
| Stamp & Signature | 🚫 跳过词 | Stamp & Signature签名印章 | 忽略·不抓 | — |
| Note: | 🚫 跳过词 | Note:备注:Notes: | 忽略·不抓 | — |
| XXX | 🚫 跳过词 | XXXTBDN/A+3 | 忽略·不抓 | — |
| XXX CO., LTD. | 🚫 跳过词 | XXX CO., LTD.ADD: XXX | 忽略·不抓 | — |
| 出口方名称 | 🏷️ 字段标签词 | EXPORTER:EXPORTER:出口方+3 | 抓旁边的值 | exporter_name |
| 单据编号 | 🏷️ 字段标签词 | NO.:NO.No.+9 | 抓旁边的值 | doc_no |
| 单据日期 | 🏷️ 字段标签词 | DATE:Date:日期+4 | 抓旁边的值 | doc_date |
| 有效期至 | 🏷️ 字段标签词 | VALID UNTIL:Valid Until有效期至+3 | 抓旁边的值 | valid_until |
| 收货方名称 | 🏷️ 字段标签词 | TO:TO:Consignee:+6 | 抓旁边的值 | consignee_name |
| 收货地址 | 🏷️ 字段标签词 | Contact PersonConsignee Address收货地址+3 | 抓旁边的值 | consignee_address |
| 币种 | 🏷️ 字段标签词 | (USD,(EUR,(CNY,+4 | 抓旁边的值 | currency |
| 贸易术语 | 🏷️ 字段标签词 | FOBCIFEXW+5 | 抓旁边的值 | incoterms |
| 付款方式 | 🏷️ 字段标签词 | Payment termPayment Terms付款方式+3 | 抓旁边的值 | payment_terms |
| 交期 | 🏷️ 字段标签词 | Lead timeLead Time交期+2 | 抓旁边的值 | lead_time |
| 打样周期 | 🏷️ 字段标签词 | Sample daysSample Days打样周期+2 | 抓旁边的值 | sample_days |
| production_capacity | 🏷️ 字段标签词 | Production capacity产能Capacity+1 | 抓旁边的值 | production_capacity |
| tooling_terms | 🏷️ 字段标签词 | Tooling feeTooling模具费+2 | 抓旁边的值 | tooling_terms |
| batch_no | 🏷️ 字段标签词 | 批次Lot No.LOT+3 | 抓旁边的值 | batch_no |
| item_code | 🏷️ 字段标签词 | 货号Item No.Item Code+2 | 抓旁边的值 | item_code |
| hs_code | 🏷️ 字段标签词 | HS Code海关编码Code douanier+1 | 抓旁边的值 | hs_code |
| amount_incl_tax | 🏷️ 字段标签词 | PRIX TTCPrix TTCMontant TTC+1 | 抓旁边的值 | amount_incl_tax |
| amount_excl_tax | 🏷️ 字段标签词 | PRIX HTPrix HTMontant HT+1 | 抓旁边的值 | amount_excl_tax |
| barcode | 🏷️ 字段标签词 | CODE BARRECode-barresCode barre+2 | 抓旁边的值 | barcode |
| store_location | 🏷️ 字段标签词 | LIEULieu de venteMagasin+2 | 抓旁边的值 | store_location |
| payment_method | 🏷️ 字段标签词 | CarteCARTEType de paiement+1 | 抓旁边的值 | payment_method |
| brand_name | 🏷️ 字段标签词 | MARQUEMarqueBrand+2 | 抓旁边的值 | brand_name |
| 台账·DATE | 📊 表格识别词 | DATEN°FACTUREPRIX TTC | 判定为台账·出统计摘要 | — |
| 台账·DATE | 📊 表格识别词 | DATEINVOICE NOAMOUNT | 判定为台账·出统计摘要 | — |
| 台账·PO NO | 📊 表格识别词 | PO NOQTYUNIT PRICE | 判定为台账·出统计摘要 | — |
| 单据日期 校验 | ✓ 校验规则 | ^\d{4}-\d{2}-\d{2}$ | 命中(regex) → 接受 | doc_date |
| 单据编号 校验 | ✓ 校验规则 | N/A | 命中(fuzzy) → 标待复核 | doc_no |
| items | 📊 表格识别词 | NO.MODELDESCRIPTION+3 | 抽成明细行 | items |
| signature_date | 🏷️ 字段标签词 | (Stamp & Signature)
Date落款日期 | 抓旁边的值 | signature_date |
| 卖方名称 | 🏷️ 字段标签词 | Seller:Seller:SELLER+5 | 抓旁边的值 | seller_name |
| 卖方地址 | 🏷️ 字段标签词 | Seller AddressShip From Address卖家地址+1 | 抓旁边的值 | seller_address |
| seller_tel | 🏷️ 字段标签词 | Tel:TEL:Phone:+2 | 抓旁边的值 | seller_tel |
| seller_fax | 🏷️ 字段标签词 | Fax:FAX:传真: | 抓旁边的值 | seller_fax |
| seller_email | 🏷️ 字段标签词 | Email:E-mail:邮件:+1 | 抓旁边的值 | seller_email |
| notify_party | 🏷️ 字段标签词 | Notify PartyNotify:通知方 | 抓旁边的值 | notify_party |
| port_of_loading | 🏷️ 字段标签词 | Port of LoadingPOL:装货港+2 | 抓旁边的值 | port_of_loading |
| port_of_discharge | 🏷️ 字段标签词 | Port of DischargePOD:卸货港+1 | 抓旁边的值 | port_of_discharge |
| vessel_name | 🏷️ 字段标签词 | VesselVessel Name船名+1 | 抓旁边的值 | vessel_name |
| bl_no | 🏷️ 字段标签词 | B/L No.BL No.B/L:+2 | 抓旁边的值 | bl_no |
| po_no | 🏷️ 字段标签词 | P.O.No.P.O. No.PO No.+3 | 抓旁边的值 | po_no |
| so_no | 🏷️ 字段标签词 | S.O.No.SO No.Sales Order+1 | 抓旁边的值 | so_no |
| invoice_total | 🏷️ 字段标签词 | Total AmountInvoice TotalTOTAL+3 | 抓旁边的值 | invoice_total |
| freight | 🏷️ 字段标签词 | Freight运费Freight Charge | 抓旁边的值 | freight |
| insurance | 🏷️ 字段标签词 | Insurance保险费Insurance Fee | 抓旁边的值 | insurance |
| marks_numbers | 🏷️ 字段标签词 | Marks & NumbersMarks唛头+1 | 抓旁边的值 | marks_numbers |
| container_no | 🏷️ 字段标签词 | Container No.CNTR No.Container Number+2 | 抓旁边的值 | container_no |
| seal_no | 🏷️ 字段标签词 | Seal No.Seal Number封号+1 | 抓旁边的值 | seal_no |
| etd | 🏷️ 字段标签词 | ETDEst. Time of Departure预计起运日+1 | 抓旁边的值 | etd |
| eta | 🏷️ 字段标签词 | ETAEst. Time of Arrival预计到港日+1 | 抓旁边的值 | eta |
| total_packages | 🏷️ 字段标签词 | Total PackagesTotal PkgsTotal Cartons+2 | 抓旁边的值 | total_packages |
| total_cbm | 🏷️ 字段标签词 | Total CBMMeasurementCBM+2 | 抓旁边的值 | total_cbm |
| gross_weight | 🏷️ 字段标签词 | Gross WeightG.W.G/W+2 | 抓旁边的值 | gross_weight |
| net_weight | 🏷️ 字段标签词 | Net WeightN.W.N/W+2 | 抓旁边的值 | net_weight |
| lc_no | 🏷️ 字段标签词 | L/C No.LC No.Letter of Credit+1 | 抓旁边的值 | lc_no |
| bank_name | 🏷️ 字段标签词 | Bank NameBeneficiary Bank开户行+2 | 抓旁边的值 | bank_name |
| bank_account | 🏷️ 字段标签词 | Bank AccountAccount No.IBAN+2 | 抓旁边的值 | bank_account |
| swift_code | 🏷️ 字段标签词 | Swift CodeSWIFTBIC+1 | 抓旁边的值 | swift_code |
| country_of_origin | 🏷️ 字段标签词 | Country of OriginOrigin Country原产国+1 | 抓旁边的值 | country_of_origin |
| packing_type | 🏷️ 字段标签词 | PackingPacking Type包装方式+2 | 抓旁边的值 | packing_type |
| invoice_items | 📊 表格识别词 | No.DescriptionQuantity+3 | 抽成明细行 | invoice_items |
| total_cartons | 🏷️ 字段标签词 | Total CartonsTotal Pkgs总箱数+1 | 抓旁边的值 | total_cartons |
| gross_weight | 🏷️ 字段标签词 | Gross WeightG.W.G/W+1 | 抓旁边的值 | gross_weight |
| net_weight | 🏷️ 字段标签词 | Net WeightN.W.N/W+1 | 抓旁边的值 | net_weight |
| measurement | 🏷️ 字段标签词 | MeasurementCBMDimension+2 | 抓旁边的值 | measurement |
| country_of_origin | 🏷️ 字段标签词 | Country of OriginOrigin原产地+1 | 抓旁边的值 | country_of_origin |
| packing_type | 🏷️ 字段标签词 | Packing TypePacking Style包装类型+2 | 抓旁边的值 | packing_type |
| pcs_per_carton | 🏷️ 字段标签词 | PCS/CTNPcs Per Carton每箱数量+2 | 抓旁边的值 | pcs_per_carton |
| total_pieces | 🏷️ 字段标签词 | Total PCSTotal PiecesTotal Units+2 | 抓旁边的值 | total_pieces |
| carton_dimensions | 🏷️ 字段标签词 | Carton SizeCarton Dimension箱规+3 | 抓旁边的值 | carton_dimensions |
| shipping_marks | 🏷️ 字段标签词 | Shipping MarksShipping Mark唛头+1 | 抓旁边的值 | shipping_marks |
| container_no | 🏷️ 字段标签词 | Container No.CNTR No.集装箱号+1 | 抓旁边的值 | container_no |
| seal_no | 🏷️ 字段标签词 | Seal No.Seal Number铅封号+1 | 抓旁边的值 | seal_no |
| total_cbm | 🏷️ 字段标签词 | Total CBMMeasurement体积+2 | 抓旁边的值 | total_cbm |
| packing_items | 📊 表格识别词 | No.DescriptionQty+4 | 抽成明细行 | packing_items |
| packing_items_v2 | 📊 表格识别词 | ItemDescriptionPCS/CTN+4 | 抽成明细行 | packing_items_v2 |
| declaration_no | 🏷️ 字段标签词 | 报关单号Declaration No.Customs Declaration No.+1 | 抓旁边的值 | declaration_no |
| hs_code | 🏷️ 字段标签词 | HS CodeHS编码海关商品编码+2 | 抓旁边的值 | hs_code |
| trade_terms | 🏷️ 字段标签词 | 成交方式Incoterms贸易条件+1 | 抓旁边的值 | trade_terms |
| transport_mode | 🏷️ 字段标签词 | 运输方式Transport ModeTransport Method+1 | 抓旁边的值 | transport_mode |
| customs_port | 🏷️ 字段标签词 | 申报地海关Customs Office申报口岸+2 | 抓旁边的值 | customs_port |
| customs_broker | 🏷️ 字段标签词 | 申报单位Declarant报关行+2 | 抓旁边的值 | customs_broker |
| customs_value | 🏷️ 字段标签词 | 完税价格Customs Value申报价格+1 | 抓旁边的值 | customs_value |
| tariff_rate | 🏷️ 字段标签词 | 税率Tariff Rate关税税率+1 | 抓旁边的值 | tariff_rate |
| domestic_consignee | 🏷️ 字段标签词 | 境内收货人境内发货人Consignee (CN)+2 | 抓旁边的值 | domestic_consignee |
| trade_country | 🏷️ 字段标签词 | 贸易国别Country of Trade最终目的国+1 | 抓旁边的值 | trade_country |
| declaration_items | 📊 表格识别词 | 项号商品名称规格型号+5 | 抽成明细行 | declaration_items |
| 预录入编号 | 🚫 跳过词 | 预录入编号海关编号(空)(系统生成) | 忽略·不抓 | — |
| responsible_person_name | 🏷️ 字段标签词 | Responsible PersonEU Responsible PersonResponsible Person Name+3 | 抓旁边的值 | responsible_person_name |
| responsible_person_address | 🏷️ 字段标签词 | Responsible Person AddressEU RP Address责任人地址+1 | 抓旁边的值 | responsible_person_address |
| responsible_person_contact | 🏷️ 字段标签词 | Responsible Person EmailRP EmailRP Contact+4 | 抓旁边的值 | responsible_person_contact |
| manufacturer_name | 🏷️ 字段标签词 | ManufacturerManufacturer Name制造商+4 | 抓旁边的值 | manufacturer_name |
| manufacturer_address | 🏷️ 字段标签词 | Manufacturer AddressFactory Address制造商地址+1 | 抓旁边的值 | manufacturer_address |
| manufacturer_contact | 🏷️ 字段标签词 | Manufacturer ContactFactory Contact制造商联系方式+1 | 抓旁边的值 | manufacturer_contact |
| product_model | 🏷️ 字段标签词 | Model No.Model NumberModel+3 | 抓旁边的值 | product_model |
| product_batch | 🏷️ 字段标签词 | Batch No.Batch NumberLot No.+3 | 抓旁边的值 | product_batch |
| barcode | 🏷️ 字段标签词 | BarcodeBar CodeEAN+5 | 抓旁边的值 | barcode |
| product_name | 🏷️ 字段标签词 | Product NameProduct DescriptionItem Description+2 | 抓旁边的值 | product_name |
| ce_doc_ref | 🏷️ 字段标签词 | CE MarkCE CertificateCE Declaration+4 | 抓旁边的值 | ce_doc_ref |
| rohs_status | 🏷️ 字段标签词 | RoHSRoHS ComplianceRoHS Certificate+1 | 抓旁边的值 | rohs_status |
| weee_category | 🏷️ 字段标签词 | WEEEWEEE CategoryWEEE Registration+1 | 抓旁边的值 | weee_category |
| applicable_directives | 🏷️ 字段标签词 | Applicable DirectivesApplicable StandardsApplicable Regulations+3 | 抓旁边的值 | applicable_directives |
| safety_warning_text | 🏷️ 字段标签词 | Safety WarningWarning TextWarning Languages+4 | 抓旁边的值 | safety_warning_text |
| test_report_ref | 🏷️ 字段标签词 | Test Report No.Test Report检测报告编号+1 | 抓旁边的值 | test_report_ref |
| product_category | 🏷️ 字段标签词 | Product CategoryProduct TypeApplicable Category+2 | 抓旁边的值 | product_category |
| warning_languages | 🏷️ 字段标签词 | Warning LanguagesLanguages of WarningLabel Languages+5 | 抓旁边的值 | warning_languages |
| recycling_symbol | 🏷️ 字段标签词 | Recycling SymbolRecycling MarkRecyclability+7 | 抓旁边的值 | recycling_symbol |
| repair_info | 🏷️ 字段标签词 | Repair InfoRepair InstructionsSpare Parts+7 | 抓旁边的值 | repair_info |
| age_restriction | 🏷️ 字段标签词 | Age RestrictionMinimum AgeAge Grade+7 | 抓旁边的值 | age_restriction |
| choking_hazard_warning | 🏷️ 字段标签词 | Choking HazardSmall Parts WarningSuffocation Risk+5 | 抓旁边的值 | choking_hazard_warning |
| voltage_input | 🏷️ 字段标签词 | Input VoltageRated VoltageVoltage+6 | 抓旁边的值 | voltage_input |
| ip_rating | 🏷️ 字段标签词 | IP RatingIP GradeIngress Protection+7 | 抓旁边的值 | ip_rating |
| fiber_composition | 🏷️ 字段标签词 | Fiber CompositionMaterial CompositionFabric Content+10 | 抓旁边的值 | fiber_composition |
| care_instructions | 🏷️ 字段标签词 | Care InstructionsWashing InstructionsCare Label+7 | 抓旁边的值 | care_instructions |
| food_contact_material | 🏷️ 字段标签词 | Food Contact MaterialFCMFood Safe+6 | 抓旁边的值 | food_contact_material |
| migration_limit | 🏷️ 字段标签词 | Migration LimitMigration TestSML+6 | 抓旁边的值 | migration_limit |
| temu_compliance_id | 🏷️ 字段标签词 | Temu Compliance IDTemu Product Safety IDGPSR Responsible Person ID+4 | 抓旁边的值 | temu_compliance_id |
| platform_compliance_doc_id | 🏷️ 字段标签词 | Amazon Compliance Document IDAmazon DoC IDAmazon Safety Document+6 | 抓旁边的值 | platform_compliance_doc_id |
| [Responsible Person Name] | 🚫 跳过词 | [Responsible Person Name][RP Name][Company Name] | 忽略·不抓 | — |
| [EU Address] | 🚫 跳过词 | [EU Address][Responsible Person Address][Address Line] | 忽略·不抓 | — |
| [email@example.com] | 🚫 跳过词 | [email@example.com][contact@example.com] | 忽略·不抓 | — |
| 件 | 📏 计量单位 | PCSPCPCE+3 | 计量单位 → 「件」 | 件 |
| 个 | 📏 计量单位 | UNITUNITSEA+1 | 计量单位 → 「个」 | 个 |
| 套 | 📏 计量单位 | SETSETS套 | 计量单位 → 「套」 | 套 |
| 双 | 📏 计量单位 | PRPRSPAIR+2 | 计量单位 → 「双」 | 双 |
| 打 | 📏 计量单位 | DOZDOZENDZ+1 | 计量单位 → 「打」 | 打 |
| 箱 | 📏 计量单位 | CTNCTNSCARTON+2 | 计量单位 → 「箱」 | 箱 |
| 盒 | 📏 计量单位 | BOXBOXES盒 | 计量单位 → 「盒」 | 盒 |
| 袋 | 📏 计量单位 | BAGBAGS袋 | 计量单位 → 「袋」 | 袋 |
| 卷 | 📏 计量单位 | ROLLROLLS卷 | 计量单位 → 「卷」 | 卷 |
| 托 | 📏 计量单位 | PALLETPALLETSPLT+1 | 计量单位 → 「托」 | 托 |
| 捆 | 📏 计量单位 | BDLBUNDLEBUNDLES+1 | 计量单位 → 「捆」 | 捆 |
| 公斤 | 📏 计量单位 | KGKGSKILOGRAM+2 | 计量单位 → 「公斤」 | 公斤 |
| 克 | 📏 计量单位 | GGRAMGRAMS+1 | 计量单位 → 「克」 | 克 |
| 吨 | 📏 计量单位 | MTTONTONS+4 | 计量单位 → 「吨」 | 吨 |
| 磅 | 📏 计量单位 | LBLBS磅 | 计量单位 → 「磅」 | 磅 |
| 立方米 | 📏 计量单位 | CBMM3立方米 | 计量单位 → 「立方米」 | 立方米 |
| 米 | 📏 计量单位 | MMETERMETERS+3 | 计量单位 → 「米」 | 米 |
| 厘米 | 📏 计量单位 | CM厘米 | 计量单位 → 「厘米」 | 厘米 |
| 毫米 | 📏 计量单位 | MM毫米 | 计量单位 → 「毫米」 | 毫米 |
| 升 | 📏 计量单位 | LLTRLITER+3 | 计量单位 → 「升」 | 升 |
| XXX只读 | 🧩 占位符·无效值 | XXX | 标记为未填写 | — |
| TBD只读 | 🧩 占位符·无效值 | TBD | 标记为未填写 | — |
| N/A只读 | 🧩 占位符·无效值 | N/A | 标记为未填写 | — |
| ___只读 | 🧩 占位符·无效值 | ___ | 标记为未填写 | — |
| [blank]只读 | 🧩 占位符·无效值 | [blank] | 标记为未填写 | — |
| ITEM 1只读 | 🧩 占位符·无效值 | ITEM 1 | 标记为未填写 | — |
| ITEM N只读 | 🧩 占位符·无效值 | ITEM N | 标记为未填写 | — |
| CONSIGNEE NAME只读 | 🧩 占位符·无效值 | CONSIGNEE NAME | 标记为未填写 | — |
| CONSIGNEE ADDRESS只读 | 🧩 占位符·无效值 | CONSIGNEE ADDRESS | 标记为未填写 | — |
| BANK NAME只读 | 🧩 占位符·无效值 | BANK NAME | 标记为未填写 | — |
| your company name只读 | 🧩 占位符·无效值 | your company name | 标记为未填写 | — |
| example@example.com只读 | 🧩 占位符·无效值 | example@example.com | 标记为未填写 | — |
| 美元 USD只读 | ♻️ 可复用真实值 | USDUS$美元 | 归一 / 可入库复用 | — |
| 欧元 EUR只读 | ♻️ 可复用真实值 | EUR€Euro+1 | 归一 / 可入库复用 | — |
| 人民币 CNY只读 | ♻️ 可复用真实值 | CNYRMB¥+1 | 归一 / 可入库复用 | — |
| FOB(装运港船上交货)只读 | ♻️ 可复用真实值 | FOB | 归一 / 可入库复用 | — |
| CIF(成本加保险费运费)只读 | ♻️ 可复用真实值 | CIF | 归一 / 可入库复用 | — |
| 中国只读 | ♻️ 可复用真实值 | ChinaCN中国 | 归一 / 可入库复用 | — |
| 法国只读 | ♻️ 可复用真实值 | FranceFR法国 | 归一 / 可入库复用 | — |
| 规则 A:全大写短文本 → 骨架标题只读启用 | ✓ 校验规则 | /^[A-Z\s./\-:]{2,25}$/ 且不在贸易代码白名单(USD/PCS/BY SEA 等) | raw_value 全大写且长度 < 25,排除贸易标准代码(USD/PCS/BY SEA/T·T/FOB 等)→ 归为固定骨架字段。GPT RULE 4 优先识别骨架字段;本规则作为后备兜底。 | — |
| 规则 B:编号/日期标签 → 骨架标签行只读启用 | ✓ 校验规则 | starts_with:NO.,DATE,TO:,FROM:,REF,ATTN | raw_value 以 NO./DATE/TO/FROM/REF/ATTN 开头且字符数 < 20 → 疑似单元格标签行,归为固定骨架字段 | — |
| 规则 C:Label 高度包含 Value → 混写检测只读启用 | ✓ 校验规则 | label_contains_value:min_value_len=4 | label_zh 包含 raw_value 且 value 长度 ≥ 4 → label 与 value 写同一格,归为 split_detection(建议人工拆分) | — |
| 规则 D:纯序号值 → 疑似序号骨架只读启用 | ✓ 校验规则 | /^\d{1,2}$/ 或 /^[A-Z]\d$/(不含 3 位以上数字) | v6.6.22 修复:纯 1-2 位数字序号(1、2、99)或字母+1位数(A1、B2)→ 疑似行/列序号骨架。已缩窄排除 3 位以上数字(800、1200、600 等商品数量/金额不再误命中)。 | — |
| 规则 F:编号列标题 → 骨架列头只读启用 | ✓ 校验规则 | /^\d{1,2}\.\s+[A-Z][A-Z\s\/\-\.]{1,35}$/ | raw_value 以 1-2 位数字加点号开头,后跟纯大写字母文本(如「1. SELLER / EXPORTER」「7. SHIPPING METHOD」「15. DESCRIPTION OF GOODS」)→ 识别为 Excel 模板的编号列标题骨架字段 | — |
| 规则 G:占位符识别 → 活字模板只读启用 | ✓ 校验规则 | isPlaceholderValue:XXX|TBD|___|ITEM N | 值==标签 | 表单占位短语 | 值含 XXX/TBD/___/【…】 或整串 ITEM N、值回显自身标签(如值「CONSIGNEE NAME」=标签)、全大写表单占位短语(CONSIGNEE/BANK/BENEFICIARY/SHIPPER/NOTIFY + NAME/ADDRESS/…)→ 判定为占位符,status 升级为 template_required(活字模板,待客户填写)。逻辑见 isPlaceholderValue()。 | — |
| 规则 H:空缺标记 → 不留任何空白只读启用 | ✓ 校验规则 | 每个标签槽位都出字段;空白→status=empty,不丢弃 | Excel 是表格,每个有标签的槽位都必须出一个字段:已填→confirmed,占位文字→template_required,空白格→empty(待填占位符)。绝不丢弃/跳过空白槽,确保「没有任何一种空缺」。提取层 prompt 强制枚举每个编号节与列,后处理保留 empty 字段不丢弃。 | — |
| 规则 I:算术校验 → 对不上标待人工只读启用 | ✓ 校验规则 | amount=qty×price;subtotal=Σ;total=subtotal+shipping+other | 确定性校验:item金额=数量×单价、小计=Σ各项金额、合计=小计+运费+其他(容差 0.02 或 1%)。任一对不上 → 该字段 status 改 needs_review 并附原因。逻辑见 arithmeticViolations()。 | — |
| 规则 J:空值纠偏只读启用 | ✓ 校验规则 | empty+有真实值→confirmed;empty+占位→template_required;empty+无值→保留 | GPT 偶把有值字段误标 empty(如「SAY TOTAL US DOLLAR ...」)。后处理:status=empty 但 raw_value 是真实值(非占位符)→ 纠正为 confirmed;是占位文字→template_required;真正无值→保留 empty。 | — |
| 规则 K:地址必出只读启用 | ✓ 校验规则 | always emit seller_address & consignee_address (even placeholder) | 卖方地址、收货人地址即使是占位符(含 XXX 或等于标签)也必须输出为独立字段,避免地址槽位被漏抽(提取层 prompt RULE 7 强制)。 | — |
| 规则 L:Excel 单元格保真只读启用 | ✓ 校验规则 | richText→text / formula→result / hyperlink→text(不输出 [object Object]) | ExcelJS 富文本/公式/超链接单元格是对象,旧逻辑 String() 会变「[object Object]」丢值(HS CODE/总毛重/贸易术语/金额公式)。按 richText→拼接文本、formula→result、hyperlink→text 正确解析(见 file-reader.ts excelCellToString)。 | — |
| 规则 M:合并单元格感知折叠只读启用 | ✓ 校验规则 | 只取合并区主格,跳过从属格(独立区同值也保留) | v6.6.32:合并单元格会让一行里同值重复 5-11 次。只取每个合并区的「主格」、跳过从属格(COMMERCIAL INVOICE ×11→×1);两个独立合并区即使同值也都保留(修复 9.卸货港 与 10.交货地点 同为「LOS ANGELES, CA」被并成一个、交货地点丢值的问题)。见 file-reader.ts。 | — |
| 规则 N:重复字段折叠只读启用 | ✓ 校验规则 | 去重 key:label_en+raw_value 相同则只保留一个(item_* 除外) | 提取后折叠 label_en+raw_value 完全相同的重复字段(合并区重复的 N/M 标记、被列两次的同一骨架标签),消除 GPT 偶发重复输出造成的字段数抖动。行项目 item_* 永不折叠(item_1/item_2 是不同商品)。 | — |
共 177 条 · 查看模式,要改规则请切右上角「编辑模式」
点左边任一词条,这里看它的详情与使用范围。