放在审核链路的哪一步
最常见的错误是把它当成「自动拦截器」放在提交链路上。检测是概率判断,必然有误判, 而提交链路是同步的——一旦检测服务抖动或误判,用户侧看到的就是发帖失败。合理的摆法是异步、旁路、只做排序:
- 01内容正常入库,用户侧立即成功。此时还没有任何检测结果,不要因此阻塞。
- 02异步任务取内容做检测,把置信度、分段结果与 task_id 回写到内容记录。 失败重试即可,重试仍失败就当作「未检测」,不要当作「人工写作」。
- 03人工审核队列按置信度倒序排列:高置信度的排在前面先看,而不是先被拦掉。 审核员的判断仍然是人做的,检测只改变「先看哪一条」。
- 04对已发布内容,检测结果只用于推荐权重、是否加标识这类可逆动作; 删除、封号这类不可逆动作必须由人做出。
阈值分三档,不要分两档
只设一个阈值(比如 0.5)意味着把「模型没把握」和「模型很确信」混在一起处理。 实际运营中更稳的做法是三档,中间那档是缓冲区:
- 高置信度:加标识、降权、或优先送人工。可逆动作,错了能撤。
- 中间区间:不处置,只记录。这一档最容易踩坑——短文本、模板化文案、混合写作都落在这里, 强行判定就是在制造申诉。
- 低置信度:正常放行。不要因为「反正分数低也检测一下」就把它当成人工写作的证明—— 它只说明模型没看出机写特征。
阈值具体定在哪,取决于你更怕误判还是更怕漏判。活动公告、商品描述这类模板化文本占比高的 平台,阈值要往高调,否则人工队列会被误判淹没。
批量与并发的工程细节
- 单次批量有上限,超过要拆分。拆的时候按内容长度而不是条数切,长文几条就能占满额度。
- 并发不要一次打满:留出重试余量,遇到限流按指数退避,而不是原地重试。
- 结果落库时同时存内容哈希:同一内容再次提交时直接命中缓存,既省钱也保证同一内容两次判断一致。
- 保存
task_id与原始返回 JSON。 事后要复盘某次判定时,只有分数没有原始返回,等于没有证据。
误判与申诉:先把证据留住
误判不是异常,是这类服务的固有属性。能控制的是误判发生之后能不能说清楚: 当时检测的是哪一版文本、什么时间、返回了什么。三样东西缺一不可——文本快照、task_id、原始返回。 只存一个分数,用户在三个月后申诉时你无法复现,也无法解释。
申诉流程本身建议写明三件事:检测结果是概率判断、不是事实认定;处置是可逆的、 复核后可以撤销;复核由人做。这三句话同时出现在用户协议与站内提示里, 比在客服话术里临时解释有效得多。
如果目的是合规标识
生成合成内容的标识要求,和「判定某段内容是不是 AI 写的」是两件事:前者要求 生成方主动声明,后者是事后推测。检测结果可以作为标识的辅助依据,但不能替代 生成方的声明义务。实际做法通常是双轨——能拿到生成方的声明或内容凭证就按声明处理, 拿不到再用检测结果做兜底标注,并在标注文案里保留「疑似」二字。
具体到接口怎么调、字段怎么读,见AI 文本检测 API与接口文档。
常见问题
二十个字的评论能检测吗?+
能调用,但不建议用来判定。文本越短,可提取的统计特征越少,置信度会明显抖动——同一作者写的两条短评论可能一个 0.2 一个 0.8。短内容的合理用法是把同一用户的一段时间内的多条内容合并后再看整体倾向,或者干脆不检测、只走规则与人工。工程上可以用 is_merge=false 拿到分段结果,但短文本的分段本身就是一句话,参考价值有限。
接入后会不会拖慢审核时效?+
取决于你放在哪一步。推荐放在入库之后、进入人工队列之前做异步检测,检测结果回写到内容记录上,人工审核时直接看到标记。不要放在用户提交的同步链路里:一次检测要几百毫秒到数秒,放在提交链路上会让发帖变慢,且检测服务抖动时会直接变成用户侧失败。
误判了怎么处理?+
先留证,再申诉。每次调用保存 task_id、原始返回、检测时间与被检测文本的快照——文本本身会变(用户可能编辑),只存 task_id 无法复现当时的判断。处置上建议只对高置信度内容做限制展示,中置信度只做排序靠后,不做拦截;同时给作者一条可见的申诉入口。把检测结果直接用于封号,是这条业务线最常见的翻车方式。
同一篇内容重复提交会重复扣费吗?+
会。计费按调用次数与内容长度计算,不做内容去重。批量场景下建议在业务侧按内容哈希做一层缓存:同一文本在有效期内只调用一次,结果复用。这既能省费用,也能避免同一内容两次检测结果不一致引发的解释成本。
需要给用户看检测结果吗?+
不需要,也不建议。检测输出的是概率,展示给终端用户既无法解释也无法申诉,反而会引发「你说我是 AI 写的」这类争议。对外只体现处置结果(如限制推荐、要求补充说明),内部保留检测记录即可。若业务上必须披露,应同时说明这是概率判断且不构成事实认定。
相关页面
注册即赠体验金,先把全流程跑通再充值