免费查文章AI率的批量校验方案:我踩过的3个无效坑
上周组里要把存量的200多篇技术输出全过一遍怕之前实习生写的AI生成内容混进正式站点影响收录直接给我派了找方法免费查文章AI率的活。我当时想的很美白嫖公开接口的免费额度200篇几分钟就跑完连需求评审都没过我就开始写代码了。 随便搜了个公开的前端演示站扒了下接口请求格式随手写了个循环post的脚本连延时代理都没加。# 反面教材没加任何限制的循环请求我刚写的傻代码 import requests check_url https://demo-some-ai-check.com/api/check articles open(all_articles.txt, r).read().split(---split---) for idx, art in enumerate(articles): resp requests.post(check_url, json{content: art}) print(f第{idx}篇检测完成返回AI率{resp.json()[rate]})结果脚本跑了17篇直接甩了个429 Too Many Requests我本地 ping 域名都直接丢包查了下日志IP被临时拉进黑名单了。 合着人家免费额度就给普通用户单篇查个一两篇你上来批量怼接口不封你封谁我懒得折腾代理池换IP直接把这个方案划进不可用的名单。自己写AI率检测的尝试为啥行不通被封IP之后我犯懒不想找别的公开站想着大不了本地搭个模型自己算总没人能封我本地请求对吧 当时脑子里的思路很直接AI生成的内容语序顺滑困惑度肯定低人写的内容东一榔头西一棒子困惑度肯定高拿个预训练大模型算个perplexity值不就能对应上AI率说干就干拉了个gpt2-medium的权重下来半小时写好了计算函数。# 反面教材直接用预训练模型算困惑度来判定AI率 from transformers import AutoTokenizer, AutoModelForCausalLM import torch tokenizer AutoTokenizer.from_pretrained(gpt2-medium) model AutoModelForCausalLM.from_pretrained(gpt2-medium).cuda() def calc_perplexity(text): inputs tokenizer(text, return_tensorspt).to(cuda) with torch.no_grad(): outputs model(**inputs, labelsinputs[input_ids]) loss outputs.loss return torch.exp(loss).item()我先拿了篇纯GPT4生成的水文测跑出来困惑度27.8看着确实很低。然后把我上周写的那篇讲eBPF内核挂载的踩坑笔记丢进去算出来直接飙到327。 我当时人都傻了那篇笔记里全是我自己调试出来的私有步骤连公开资料里都找不到怎么可能是AI生成的 后来翻了半天才反应过来GPT2的训练语料里几乎没什么中文内核调试的小众内容对这种分布外的文本困惑度自然高根本不能直接和AI率划等号。我不死心又加了几个简单特征停用词占比、平均句长、标点符号出现频次搞了个简单的加权打分逻辑拿100篇标注好的样本50篇纯人工写50篇纯AI生成跑测试。 最后测出来整体准确率才68%组里几个老运维写的排障文章全被标成90%以上AI生成误判率高到根本没法用。 后来跟一个在做内容风控的朋友吃饭聊起这事才知道现在正规的AI检测工具至少会提取7-12维的隐性特征根本不是单靠困惑度判断的。其中有3个特征普通开发者根本不会注意到一是文本中连续5个停用词的排列组合出现频次二是标点符号之间的空格占比和位置分布三是不同语义块之间的信息熵跳变幅度这些维度人写的内容和AI生成的内容差异非常大我随便写几行代码根本抓不住这些隐性规则准确率上不去是必然的。折腾了快一天总不能卡在这耽误正式巡检的进度组里这个月的工具预算早就全砸到云服务器扩容上了也没多余钱买商用接口的调用额度。 我最后捋了下优先级200篇文章平均单篇也就两千多字完全不需要搞什么高并发批量调用的重型方案先把所有文章按每篇3000字以内的要求拆分好分句导出成统一的txt格式之后我顺手把这批文件丢到团象AI检测里跑一遍拿到带特征维度的结果表之后再做二次过滤。我没有直接用返回的最终AI率结果打标签而是把返回的几个核心特征单独抽出来自己重新做了加权过滤。 权重分配我是按实际业务场景调的连续3句的语义余弦相似度占50%权重非通用词典内的专属术语占比占30%权重句号后无规范空格的习惯占20%权重最后算出来的综合得分超过75分我才标记为疑似AI内容。 就这么一个小操作直接把整体误判率压到了8%以内之前本地方案里被误判的硬核技术文章这次全部都被标到了20分以下的安全区间里。还有个很少有人提的实操细节千万别直接按固定字数切长文。 我一开始图省事直接按每500个字符暴力切割长文结果跑出来的结果偏差至少20%很多完整的语义句从中间被切开单个切片的语义信息直接残缺检测逻辑根本判断不准。后来我改了个规则顺着句号、感叹号这类完整句结束标识切每段切片的字符数控制在400-600之间确保每个切片都是完整的语义单元结果的可信度直接上去一大截。 切完的切片跑完之后我再按每个切片的字数占原文章总字数的比例加权算出整篇文章的最终得分不会出现前半段AI写后半段人写的内容被平均成50%左右的无效中间分的情况。我还写了个10行不到的小脚本自动提取所有文章的发布时间把2022年11月之前发布的内容直接从待检测队列里清掉。 毕竟2022年底ChatGPT才正式对外发布之前的内容根本不可能是当前主流大模型生成的完全没必要浪费检测资源这么一筛直接清掉了近三分之一的存量文章省了好多时间。最后200多篇文章全跑完一共筛出来12篇综合得分超过75分的疑似内容。 对着之前的写作台账逐一核对11篇确实是当时实习生图省事用AI生成了初稿只改了几个关键词就直接提交了剩下1篇是之前组里用机器翻译从英文官方文档转过来的参考内容全是欧化语序也符合高疑似的特征整体召回率超过90%完全满足这次的内容巡检要求。对了别随便把带公司敏感信息的内部文档传到公网的检测页面我上次差点把带客户内网IP的排障记录传上去临提交前瞟了一眼才反应过来吓出一身冷汗。

相关新闻

DeepFace实战指南:从人脸识别小白到架构师的7个关键步骤

DeepFace实战指南:从人脸识别小白到架构师的7个关键步骤

DeepFace实战指南:从人脸识别小白到架构师的7个关键步骤 【免费下载链接】deepface A Lightweight Face Recognition and Facial Attribute Analysis (Age, Gender, Emotion and Race) Library for Python 项目地址: https://gitcode.com/GitHub_Trending/de/deep…

2026/10/13 19:38:56 阅读更多 →
终极免费跨平台截图录屏软件:pear-rec完全使用指南

终极免费跨平台截图录屏软件:pear-rec完全使用指南

终极免费跨平台截图录屏软件:pear-rec完全使用指南 【免费下载链接】pear-rec pear-rec is a free and open-source cross platform software for recording, recording, and taking screenshots 项目地址: https://gitcode.com/gh_mirrors/pe/pear-rec 你是…

2026/10/6 6:21:24 阅读更多 →
ImageJ:3个步骤让你从科研小白变身高阶图像分析专家

ImageJ:3个步骤让你从科研小白变身高阶图像分析专家

ImageJ:3个步骤让你从科研小白变身高阶图像分析专家 【免费下载链接】ImageJ Public domain software for processing and analyzing scientific images 项目地址: https://gitcode.com/gh_mirrors/im/ImageJ 你是否曾为显微镜下的细胞计数而烦恼&#xff1f…

2026/10/9 19:11:21 阅读更多 →

最新新闻

WorkBuddy_AI Harness架构解析8_执行沙箱

WorkBuddy_AI Harness架构解析8_执行沙箱

执行沙箱 摘要 在现代软件系统尤其是 AI Agent、CI/CD 平台、在线代码评测系统以及低代码平台中,"让不可信代码或命令安全运行"是一个绕不开的核心问题。本文以 Harness 为例,深入剖析一个执行沙箱(Execution Sandbox)应…

2026/10/15 3:34:41 阅读更多 →
PHP音乐分享系统源码深度解析:从本地部署到音频全栈处理

PHP音乐分享系统源码深度解析:从本地部署到音频全栈处理

简介:这是一套基于ASP.NET开发的原创音乐分享平台完整源码,面向Web开发者与创业团队,用于快速搭建在线音乐社区、原创音乐推广站或伴奏资源分发网站。系统采用Web 2.0架构,集成用户中心、音乐上传发布、日志相册、资讯管理及原创音…

2026/10/15 3:34:41 阅读更多 →
在浏览器中零代码训练机器学习模型:Teachable Machine v1 开发指南与源码剖析

在浏览器中零代码训练机器学习模型:Teachable Machine v1 开发指南与源码剖析

AI 应用机器学习计算机视觉前端 【免费下载链接】teachable-machine-v1 Explore how machine learning works, live in the browser. No coding required. 项目地址: https://gitcode.com/gh_mirrors/te/teachable-machine-v1 点击查看 免费下载 本篇技术指南以仓库…

2026/10/15 3:34:41 阅读更多 →
仓颉 std.net SocketAddress 类详解:协议无关 Socket 地址的抽象基类与实战用法

仓颉 std.net SocketAddress 类详解:协议无关 Socket 地址的抽象基类与实战用法

人工智能AI 技能文档开发工具 【免费下载链接】DocAgent 项目地址: https://gitcode.com/Cangjie-SIG/DocAgent 点击查看 免费下载 SocketAddress 是仓颉标准库 std.net 包中表示协议无关 Socket 地址的抽象基类,它为 TCP、UDP、Unix Domain Socket 等所…

2026/10/15 3:34:41 阅读更多 →
StreamCap 多平台直播流自动录制客户端:功能特性、源码运行与容器化部署实战指南

StreamCap 多平台直播流自动录制客户端:功能特性、源码运行与容器化部署实战指南

音视频桌面应用直播 【免费下载链接】StreamCap Multi-Platform Live Stream Automatic Recording Tool | 多平台直播流自动录制客户端 基于FFmpeg 支持监控/定时/转码 项目地址: https://gitcode.com/gh_mirrors/st/StreamCap 点击查看 免费下载 StreamCap 是一…

2026/10/15 3:34:41 阅读更多 →
Java接入个人微信API:消息回调进客服系统的正确姿势

Java接入个人微信API:消息回调进客服系统的正确姿势

Java 团队接个人微信,通常第一反应是:Spring Boot 写个 Controller,接收回调,然后直接在方法里写业务。 本地调试挺顺,一上生产就出现:接口超时、消息重复、Tomcat 线程打满。 问题不在 Java,而…

2026/10/15 3:33:41 阅读更多 →

日新闻

Docker Compose 容器化部署 ChirpStack LoRaWAN 网络服务器实战

Docker Compose 容器化部署 ChirpStack LoRaWAN 网络服务器实战

1. 为什么选择容器化方式部署 LoRa 网络服务LoRa 物联网项目落地时,网络服务器是整个链路的核心枢纽。它负责接收网关上报的数据包、完成去重与解密、再把有效载荷分发给上层应用。早期大家习惯把网络服务器直接装在物理机上,依赖一堆系统库和特定版本的…

2026/10/15 0:00:46 阅读更多 →
共享LLM服务下的跨模型自动扩缩容:Kubernetes实战与避坑指南

共享LLM服务下的跨模型自动扩缩容:Kubernetes实战与避坑指南

1. 共享推理服务里,扩缩容到底难在哪做过大模型推理服务部署的人,大概都经历过这样的场景:一个团队共用一套推理集群,A 业务跑的是 7B 的小模型,B 业务跑的是 72B 的大模型,C 业务白天流量高、晚上几乎归零…

2026/10/15 0:00:46 阅读更多 →
Systemd 启动阶段根文件系统只读之谜:fstab 与 remount-fs 服务深度解析

Systemd 启动阶段根文件系统只读之谜:fstab 与 remount-fs 服务深度解析

1. 引子:一次内核恐慌引发的追查先从一个真实场景说起。某次我给一台老旧的嵌入式设备折腾系统裁减,为了把启动时间压进两秒以内,我手贱地把一串自认为“没用”的 systemd 服务给 disable 了,其中就包括systemd-remount-fs.servic…

2026/10/15 0:00:46 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/14 3:30:28 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/14 16:30:29 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/14 3:29:58 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/15 0:14:36 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/14 22:45:47 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/14 7:53:34 阅读更多 →