做电商代运营这几年,我经手最多的不是爆款链接,而是一堆乱七八糟的商品资料。标题一份、详情页一份、参数表一份、质检报告一份,有时候还有授权书和价格表。这些资料凑在一起,本应该共同撑起一个合格的商品页面,但实际情况是,它们经常互相打架。
我接过一个蓝牙耳机的店铺项目,详情页写着“续航30小时”,参数表写的是“单次续航8小时”,商品主图上又印着“超长续航40小时”。三份资料三个数,链接上线没多久就被平台判定夸大宣传,直接降权。类似的事情多了之后,我下定决心要做一个商品资料包体检助手,把资料丢进去,自动给出问题清单。于是就有了这套基于 Qwen3.8-Max 的体检方案,实测用 6 份文本资料和 1 张商品主图,一次性查出 27 个问题,从文案矛盾到图片牛皮癣,从参数缺失到资质过期,全部落在一张表里。
这套东西适合谁?你只要是做电商运营、商品管理、内容审核,或者接手了别人留下的资料包需要快速排查风险,都可以直接参考。它不是要取代人工审核,而是把最耗时、最磨人的逐项比对工作交给模型,让人只盯最后的问题确认环节。
1. 项目背景:商品资料包的“暗雷”到底有多少
1.1 一份商品资料包里到底装了什么
一个常规的商品上架资料包,通常包含这些内容:商品标题文案、详情页描述、规格参数表、商品主图或场景图、质检报告、品牌授权书、定价与库存表。听起来不多,但每份资料的来源和撰写人往往都不一样。文案部门写标题时追求卖点冲击力,会写“最强降噪”“超长续航”;产品部门填参数表时只报实测数据;美工做主图时为了突出促销信息,会加上各种角标和贴纸;质检报告又是另外一套流程出的。
这些资料之间天然存在信息差。文案把电池容量写成 500mAh,参数表里实际标的是 450mAh,主图上却印着“大容量 520mAh”。单看任何一份文件都没问题,放在一起就是事故现场。平台审核系统虽然也有自动检测,但它的检测逻辑主要是识别页面本身的违规词或图片牛皮癣,对跨文档的矛盾不一定能发现。等买家收货后拿参数表对比详情页,那就是售后投诉和差评的起点。
1.2 人工核查的几个致命短板
我最早是纯人工核查这些资料包,一份耳机资料从头到尾比对下来要 40 到 60 分钟,而且效果不稳定。因为跨文档比对极度依赖短期记忆,你翻回标题、又翻到参数表、再去看图片,来回几次之后,脑子里记的前一条信息很可能已经模糊了。这是一个注意力问题,不是细心不细心的问题。
还有标准统一的问题。不同审查员对“什么算问题”的判断不一样。老运营觉得细节不一致只要不涉及虚假宣传就能放行,新人审核则会把一些无关紧要的措辞差异也标成问题。结果就是审核质量完全看当天审核员的状态和经验。我用过正则和关键词规则写过一套检测脚本,它只能查“有没有出现某个词”“字段是否为空”这类结构化问题。遇到“标题说的降噪深度和详情页描述不一致”这种语义层级的矛盾,规则脚本完全无能为力。这也是我最终选择大模型方案的根本原因。
2. 方案设计:让大模型当“体检医生”
2.1 模型选型:为什么是 Qwen3.8-Max
先说明一点,我在写这套流程之前对比了三种路线:纯规则脚本、普通大模型单轮问答、以及现在的分模块工作流。规则脚本前面说了,只能做关键词匹配;普通大模型单轮问答虽然能理解语义,但把几十页资料一次性扔进去让它找问题,输出往往发散,会把一些无足轻重的差异当成问题,还容易漏掉真正的矛盾。
最后我选了 Qwen3.8-Max,核心原因是三个能力点:
第一,多模态理解。这个任务不是纯文本,商品主图上的角标、贴纸、边框、水印、价格标注,以及logo是否遮挡商品主体,这些都需要模型直接看图判断。Qwen3.8-Max 的视觉感知能力足够支撑这类检查,细节识别到具体文字内容也能做到。
第二,长上下文。6 份文本资料合并处理之后通常有 1 万到 1.5 万字,加上主图的视觉描述,总量并不少。如果上下文窗口不够大,就得把资料切块,一切块就无法做全局一致性检查,标题和参数表离得再近也关联不起来。
第三,结构化输出的稳定性。体检助手的最终产出是一份带编号、严重等级、整改建议的问题清单,后续还要接工单系统。Qwen3.8-Max 在按 JSON 格式输出、遵循严格指令方面表现稳定,我实测下来几乎没有出现格式跑偏的情况。
2.2 整体架构:不是一句 prompt 就能搞定的事
我的方案不是“把资料塞进对话框,让它随便找问题”,而是分成四个模块的流水线:输入标准化、单文档体检、交叉一致性体检、报告生成。
每个模块各有职责。输入标准化负责处理原始文件,把 6 份文本资料转成带标签的结构化文本,每一份都有明确的区块标记。单文档体检负责检查每份资料内部的硬伤,比如错别字、广告法违禁词、必备字段缺失。交叉一致性体检是整个方案的核心,负责跨文档比对,检查标题、详情页、参数表、图片之间的信息是否互相矛盾。最后的报告生成模块负责把前两步发现的问题汇总、去重、分级,输出成一份可执行的整改报告。
为什么要把流程拆开?因为检测目标不同,对模型的引导策略就不一样。单文档检查需要的是“逐字逐句找毛病”,跨文档比对需要的是“跳来跳去找矛盾”。如果硬塞进一个 prompt,模型会在两种思维模式之间反复横跳,结果两头都不彻底。拆开后每个模块的 prompt 可以针对性优化,问题自然查得更准。
2.3 27 个检测维度是怎么划分的
我把资料包的检测维度分成五大类,每一类下再拆出具体检查项,最后收敛成 27 个可输出的“问题标签”。
第一类是内容一致性,检查标题、详情页、参数表、主图之间的信息是否互相矛盾,比如续航时间、材质、尺寸、型号写法。第二类是图片合规,检查主图是否存在牛皮癣、超粗边框、拼接痕迹、logo 遮挡、价格角标是否超规等等。第三类是描述完整度,检查商品标题是否缺少核心关键词、详情页是否有售后说明、参数表是否缺了必填规格。
第四类是资质与合规,检查质检报告是否在有效期内、品牌授权书是否覆盖当前商品、文案里有没有绝对化用语或医疗功效描述。第五类是数据逻辑,检查套餐价与单件价算不算得过来、库存单位和规格换算有没有问题。
这 27 个检查项不是一次性让模型全部输出,而是按模块分派,每个模块只负责自己那一部分。这样模型的注意力更集中,查出来的问题也更具体。
3. 实操过程:一步步把体检助手搭出来
3.1 输入整理:把散资料变成“体检档案”
实操第一步是整理输入。我写了一个 Python 预处理脚本,做的事情很简单:按文件类型读取 6 份文本资料,给每份加一个区块标记,然后合并成一个完整的检测文本。比如标题文件的前面加上[标题],参数表前面加上[参数表]。
这里有一个容易忽略的细节:文件来源五花八门,有的是 Word 文档,有的是 Excel 导出的表格,有的是网页复制的文本,编码也各不相同。我在预处理脚本里做了统一处理,全部转成 UTF-8 纯文本,表格内容转成 markdown 格式,避免模型在读 Excel 转出来的制表符时被搞乱。
商品主图单独处理,先压缩成合适尺寸,再转成 base64 编码传给多模态接口。图片编码这一步建议控制一下图片体积,一张 2MB 的图转成 base64 之后会膨胀约 33%,传一次没什么感觉,反复调试时成本就上来了。我一般把主图压缩到最长边 1024 像素,质量 80%,既能保证细节识别,又不会让 token 消耗失控。
3.2 单文档体检:逐份资料查“硬伤”
输入标准化完成后,进入第一阶段体检。这一阶段的检测目标是每份资料内部的合规性和完整性。我给模型设计的 prompt 大致长这样:
你是一名电商商品资料审查专家,请对以下商品资料进行单文档体检。 资料内容: [标题] xxx无线蓝牙耳机 主动降噪 超长续航 入耳式运动跑步耳机 手机通用 [详情页] xxx无线蓝牙耳机,采用最新旗舰级降噪芯片,降噪深度-45dB,一次充电续航30小时,支持无线充电…… [参数表] | 参数名 | 参数值 | | 蓝牙版本 | 5.3 | | 续航时间 | 单次8小时 | | 降噪深度 | -35dB | 请检查: 1. 每份文件内部是否存在错别字、语病、违反广告法的绝对化用语。 2. 参数表是否缺少该品类商品应具备的关键规格字段。 3. 详情页描述是否过于空泛,缺少可验证的证据或具体数据支撑。 注意: - 判断问题时必须引用资料原文,不能凭印象判断。 - 如果无法确认,请标记为“需人工复核”,不要臆测。 - 只输出JSON,格式如下: {"issues":[{"id":"A01","level":"high","file":"参数表","quote":"续航时间 | 单次8小时","problem":"缺少电池容量字段","suggestion":"补充电池容量参数"}]}这里面的几个细节我要特别说一下。“必须引用原文”这条约束非常关键,它能大幅减少模型的幻觉。模型在没有引用约束时,容易脑补出一些资料里根本不存在的描述,比如宣称“参数表中未提到蓝牙版本”,但实际上参数表里明明白白写着一行。加了引用约束后,它再犯类似错误,你一眼就能看出来是它胡扯还是真有问题。
JSON 格式约束同样重要。不要让它自由发挥输出自然语言报告,那样解析和后续处理都很麻烦。直接要求 JSON,并且在 prompt 里给了字段示例,模型跟着框架走,输出稳定性会好很多。
3.3 交叉一致性体检:查跨文档矛盾
第二阶段是整个方案的灵魂,也就是跨文档一致性检查。这个阶段不查单份内部的问题,专门查不同文件之间的信息矛盾。prompt 设计我做了两个关键动作:一是把所有文本资料按区块编号,二是要求模型在发现矛盾时列出所有涉及的文件和原文。
实际使用的 prompt 结构如下:
请对以下标记了分区的商品资料进行交叉一致性体检。 [标题](编号T) [详情页](编号D) [参数表](编号P) [质检报告](编号Q) [授权书](编号A) [价格库存表](编号S) 重点检查: 1. 标题中宣传的卖点,在详情页或参数表中是否有对应佐证。 2. 详情页中出现的具体数值(容量、尺寸、续航、重量等)与参数表是否一致。 3. 主图标注的信息与文本资料是否存在冲突。 4. 价格、库存单位、套餐组合在不同文件中的表述是否统一。 5. 认证信息(如CE、FCC、质检报告编号)在不同文件中的表述是否一致。 输出要求: - 每个问题必须列出“编号+涉及的资料区块+矛盾原文摘录”。 - 严重程度分为高/中/低:高代表可能触发平台处罚或虚假宣传,中代表影响用户决策但不违规,低代表建议优化。 - 只输出JSON数组。这个阶段的检测质量取决于一个前置条件:模型是否真的记住了每个区块的内容。所以我把资料完整放入 prompt,同时利用长上下文窗口,确保标题里的说法和参数表里的数据都被模型同时“看到”。
实测中这个阶段常见的输出是:标题写了“超长续航 40 小时”,参数表写“单次续航 8 小时”,详情的充电仓续航写“配合充电仓 40 小时”——模型能准确判断出三方各自的表述差异,并把它标记为高度矛盾,然后给出统一口径的建议。这就是之前规则脚本无论如何也做不到的。
3.4 图片合规检查:让模型“看图说话”
文本部分跑完后,单独对商品主图做一遍视觉检查。我会把 base64 图片连同文本资料一起传给模型,prompt 重点放在视觉层:
这是一张商品电商主图,请结合附带的商品资料进行视觉维度检查: 1. 主图是否存在大面积促销贴纸、牛皮癣(无商品主体的贴纸叠加)。 2. 是否存在夸张边框、拼接底纹、与品牌风格不符的模板化元素。 3. logo、水印或平台角标是否遮挡了商品主体。 4. 图片上的文字信息(比如“热卖”“第一名”等)是否包含极限词或违规表述。 5. 图片展示的商品外观、颜色、规格与文字资料的描述是否一致。 请逐项回答,无法确认的标为“无法确认”,不要猜测。图片检查这一块,我强烈建议不要只依赖模型的“视觉描述”,最好把图片上的文字用 OCR 抽取一遍,作为辅助文本传给模型。原因我在后面的踩坑部分会详细说,这里先记住一个结论:模型看图时能识别结构、构图、遮挡关系,但小字号文字经常看走眼,OCR 可以兜底。
3.5 报告生成:把问题汇总成一张整改清单
前三个模块跑完后,把各自的 JSON 输出汇总到报告生成模块。这个模块有两个任务:去重和分级。去重的逻辑是,如果 A 模块查出“详情页参数与参数表不一致”,C 模块又查出同样的矛盾,那就合并成一条,不重复计数。
分级逻辑我会参考严重程度字段。高风险问题包括:绝对化用语、售价矛盾、认证过期、虚假宣传;中风险包括:参数缺失、描述过于空泛、图片略乱;低风险就是文案风格、排版建议这类优化项。最终生成的报告是一个 JSON 文件加一个 markdown 表格。JSON 给程序用,markdown 给人看。
实际报告示例(简化版):
| 编号 | 严重度 | 问题描述 | 涉及文件 | 整改建议 |
|---|---|---|---|---|
| A01 | 高 | 标题宣称“续航30小时”,参数表标注“单次8小时”,详情页写“配合充电仓40小时”,三处口径不一致 | 标题、参数表、详情页 | 统一续航表述,写明单次与总续航 |
| B02 | 高 | 主图右上角出现“全网销量第一”字样,属绝对化用语 | 主图 | 删除违禁词,更换为合规表述 |
| C03 | 中 | 参数表缺少电池容量字段 | 参数表 | 补充电池容量 |
3.6 参数配置:温度、随机性这些细节
大模型不是拿到 prompt 就直接能用,推理参数不调好,输出质量能差出一大截。我在整个流程里用的参数配置是:temperature 0.1,top_p 0.3,max_tokens 视阶段而定。单文档体检阶段输出较短,设为 2048 足够;交叉一致性体检输出会长一些,我设成 4096。
temperature 为什么调这么低?因为这个任务做的是审查和比对,要求严谨、稳定,不需要创意。temperature 调到 0.7 以上,模型可能每次跑出来的问题清单表述都不同,个别地方还会冒出模棱两可的措辞。0.1 这个值能保证同样的输入跑两三次,结果基本一致,排查问题的时候也容易复现。
max_tokens 也要给足。我一开始把交叉一致性体检阶段的输出设成 1024,结果模型写到一半被截断,JSON 不完整,解析直接报错。后来改成 4096,这种情况才缓解。建议宁可设大一点,也不要让输出被截断。
4. 实测记录:6 份资料和 1 张图查出 27 个问题
4.1 测试样例长什么样
我拿一个真实的代运营项目做了测试。这个项目是某品牌的一款入耳式蓝牙耳机,资料包里有 6 份文本文件:商品标题、详情页文案、规格参数表、质检报告摘要、品牌授权书摘要、定价与库存表,外加一张商品主图。
这套资料表面上看起来挺完整,但实际藏着大量问题。标题为了追求点击率,写的是“降噪耳机天花板”“续航一周”;详情页描述里用了“最先进”“顶级芯片”这类绝对化用语;参数表的续航数据和标题、详情页对不上;主图上小字印着“销量冠军”。质检报告和授权书倒是齐全,但质检报告里的产品型号和详情页写的型号不是一个。定价表也乱了,单件价标的是 399,套餐价却写着“两件 699”,算下来比单卖还贵。
4.2 27 个问题的分类明细
整个流程跑完,总共输出 27 个问题。我把明细整理如下:
| 类别 | 数量 | 典型问题举例 |
|---|---|---|
| A 内容一致性 | 8 | 标题、详情页、参数表续航数据三处矛盾;质检报告型号与详情页型号不一致 |
| B 图片合规 | 5 | 主图出现“销量冠军”字样;logo 遮挡商品;拼接背景;牛皮癣贴纸;边框过粗 |
| C 描述完整度 | 6 | 标题缺少耳机品类核心词;参数表缺少电池容量和应用协议;详情页无售后说明 |
| D 资质与合规 | 5 | 详情页出现“最先进”“顶级”等绝对化用语;质检报告产品名称与商品名不符;医疗功效暗示 |
| E 数据逻辑 | 3 | 套餐价与单件价不一致;库存单位件/箱混用;错标充电仓容量 |
这个 27 的数字不是模型随便数的,而是我让报告生成模块把所有 JSON 问题合并去重后的结果。人工复核了一遍,其中确认有效的问题 24 个,另外 3 个是模型误报。什么误报呢?模型把“质检报告中未标注生产日期”当成了一个合规问题,但实际上耳机类质检报告本来就不强制要求标注生产日期,这是模型对法规理解过了头。还有一处,它认为授权书中的被授权方名称和店铺名称不一致,实际上那是公司主体的曾用名,人工确认后没问题。
整体准确率在 88% 左右,对于初筛工具来说已经非常可用。原来人工 40 到 60 分钟的检查,现在 15 分钟内出完整报告,而且不会漏项。
4.3 体检报告长什么样
下面是一段真实输出的 JSON 示例,我做了脱敏处理:
{ "summary": { "total": 27, "high": 9, "medium": 12, "low": 6 }, "issues": [ { "id": "A01", "level": "high", "files": ["标题", "详情页", "参数表"], "quote": "标题:续航一周; 详情页:续航30小时; 参数表:单次续航8小时, 配合充电仓40小时", "problem": "续航表述严重不一致,存在虚假宣传风险", "suggestion": "统一口径:单次续航8小时,配合充电仓总续航40小时,删除'续航一周'表述" } ] }这个报告我直接导成了 markdown 表格,发到项目群里,运营、设计、产品各认领各的问题。整改完再跑一遍,问题从 27 个降到了 2 个,那 2 个是勾选的“建议优化”项,不影响上线。
5. 踩坑记录:这些问题我替你先试过了
5.1 幻觉问题:模型会脑补出资料里不存在的内容
第一次试跑,模型给我输出了一条“参数表中未提及蓝牙版本”,但我翻了原始参数表,里面明确写了“蓝牙版本:5.3”。这就是幻觉。原因也好理解,单文档体检阶段模型可能记住了前面读过的某份资料信息,强加到当前资料上。
解决办法我前面说过:强制引用原文。在 prompt 里加一条“判断问题时必须引用资料原文,不能凭印象判断”,幻觉问题大幅减少。如果你的资料特别长,模型在长上下文里找原文偶尔会找错位置,这时候可以再做一步“段落编号引用”,把每条原文摘录定位到具体段落号,后面人工复核时能直接跳转验证。
5.2 图片小字号文字识别不准
有一张主图右下角印着“30 天包退”,字非常小,模型看图时没识别出来,直接判断“图片无售后承诺说明”。后来我用 OCR 跑了一遍,才发现右下角有字。这个问题的根源是多模态模型的视觉编码对极小字号的敏感性不够,和人类眯着眼睛看小字是一个道理。
解决方案是双通道:OCR 抽取图片文字 + 模型视觉理解构图。把 OCR 结果作为一条文本记录传给模型,让它结合 OCR 文本和视觉印象综合判断。注意 OCR 文本有时候也是乱的,不用让它直接替代视觉判断,而是作为一个补充信息源。
5.3 JSON 输出偶尔不标准
大模型输出 JSON 整体很稳,但偶尔会出现多一个逗号、单双引号混用、或者在 JSON 外多出一段解释性文字。这种事情概率不高,但一旦发生,整个流程就会卡住。我在代码里加了一层容错处理:先用正则把 JSON 块截取出来,再交给一个 JSON 解析器,解析失败就重试一次,重试时在 prompt 末尾加上“请严格输出标准 JSON,不要包含任何解释文字”。
更稳妥的办法是利用模型的结构化输出能力。Qwen3.8-Max 支持的 response_format 参数可以直接约束模型输出合法 JSON,我在核心流程里全程启用,问题基本归零。
5.4 同类问题重复上报
交叉一致性体检阶段经常出现重复问题。比如模型在“续航数据不一致”这个问题上,先输出了一条 A01,又在“详情页与标题矛盾”这条上把同样的续航矛盾再报一遍。两个模块的输出合到一起,不处理就会出现重复计数。
我在报告生成阶段做了去重逻辑:以“问题描述关键词+涉及文件列表”作为 key,相同的自动合并。同时把严重等级往上提一级,因为重复出现的矛盾通常意味着该问题在多个模块里都被判定为显著风险。
5.5 token 消耗比想象中大
整套流程跑一次大约消耗 2.6 万 token 输入,输出约 5000 到 6000 token。如果每个模块不动脑筋直接全量塞资料,token 会翻倍。我给方案加了几层优化:单文档体检阶段,只有详情页和参数表需要全量读取,标题、授权书这类短文件合并一次性传入;交叉一致性体检阶段才需要全部资料原文。这样才能在保证检测效果的前提下,把单次成本控制在可接受范围内。
另外,长上下文模型处理长文档时,token 费和延迟都会明显上升。我建议把不参与当前阶段的资料从 prompt 中摘除,控制单次输入长度,别偷懒一次全塞。
6. 常见问题速查与经验总结
6.1 常见问题速查表
| 现象 | 可能原因 | 解决办法 |
|---|---|---|
| 模型报出资料不存在的字段 | 幻觉,模型凭训练经验脑补 | 强制引用原文,增加“无法确认”选项 |
| 主图上小字识别不到 | 多模态视觉对小字号不敏感 | 加 OCR 辅助文本,双通道传入模型 |
| JSON 输出被截断 | max_tokens 设置太小 | 调大 max_tokens,启用 response_format 强制 JSON |
| 同一问题报两遍 | 多模块检测输出重复 | 报告生成阶段按“问题描述+涉及文件”去重 |
| 单次检测成本偏高 | 无脑把所有资料重复传入每个模块 | 按阶段裁剪输入,只传当前模块需要的资料 |
| 模型误判合规条款 | 泛化过强,对行业法规理解不精确 | 设定明确的“需人工复核”兜底项,不依赖模型做最终裁决 |
| 长文档检测时找错原文 | 上下文过长导致定位偏差 | 给资料分区编号,要求模型引用编号定位 |
6.2 几个可以立刻上手的技巧
第一,prompt 里的问题定义一定要“可验证”。不要只写“检查资料是否有问题”,要写清楚“检查这三份文件中的续航数值是否一致”,这样模型输出的问题才不是空泛的“信息不一致”,而是带具体数据的矛盾条目。
第二,严重程度分级一定要结合场景。同样的“参数缺失”,在标品售卖里可能只是一个中等问题,在医疗器械或食品类目里可能就是高风险。你可以在 prompt 里补充业务背景,让模型在分级时更贴合你的类目。
第三,把判断权留给人的地方一定要留。比如资质合规类问题,模型只能做初步提示“这里的证号格式不对”或“这里表述需要人工确认”,最终是否违规必须由熟悉平台规则的运营判断。它该做的是把可疑点报全,而不是直接下结论。
第四,保持提示词版本管理。我常常今天改一句 prompt,明天加一个检查项,过一阵子就忘了之前哪版效果更好。后来把每个版本的 prompt 连同测试结果一起存档,跑完对比再决定升不升级。这个习惯帮我避免了很多“改回来了但说不清哪里出了问题”的尴尬。
第五,小步快跑。不要第一版就期望 27 个检测维度全部跑通。我一开始只做 5 个最核心的一致性检查项,跑通后再逐步增加图片合规、资质合规模块。这样每次改动的影响范围都明确,出了问题也容易定位。
这套体检助手用下来的最大变化是,资料审核从“看命”变成了“走流程”。Qwen3.8-Max 解决了之前规则脚本解决不了的语义比对问题,但它不是万能的,依然需要人工兜底审核。
我个人经验是,把大模型当作团队里最细心、最不知疲倦的实习生:它能把 27 个可疑点全部列出来,让你不再靠肉眼逐行比对,但最终拍板的还是你。关键是流程要设计得规范,prompt 要约束得清楚,报告要有结构、方便追查。做到这几点,它能实打实帮你省下大把时间,还能顺手帮你避掉不少上架后的麻烦。