SuperAPI AI 工具集

whitespaces-dont-lie-feature-driven

智能体与模型

查看项目

更新于 10-16 01:34

技能介绍

用途:让 Claude 分析源代码,评估其更可能由人类编写还是由 LLM(ChatGPT、Copilot、Claude 等)生成。依据是 AI 生成代码格式机械统一,而人类代码带有个人化、不一致的格式痕迹。

主要能力:提取四类特征——空白特征(空行比例、行尾空白频率、空格与制表符比例)、缩进特征(缩进深度方差、一致性得分、制表符与空格偏好)、结构特征(圈复杂度、嵌套深度、函数与代码块密度)、文体特征(变量命名、注释密度、行长分布)。用梯度提升树分类器(XGBoost、随机森林)判别;也可用 CodeBERT 嵌入方法,精度略高但可解释性较低。输出 0-1 置信分与主要证据特征。

使用方式:用户粘贴代码询问是否 AI 生成时触发;也可用于学术诚信审查、作者归属、代码库审计。工作流为:收集原始代码、提取空白与缩进特征、计算缩进一致性、提取结构与文体特征、对照已知分布打分、加权得出置信度并报告证据。可生成 Python 脚本批量扫描目录并输出 CSV。

适用场景:单段代码判断、两份实现对比、学生提交批量筛查、代码来源审计。

限制:自动格式化工具(black、prettier、clang-format、gofmt、rustfmt)会破坏空白信号,是最主要限制;Go、Rust 因强制格式化基本不适用;少于 10 行、压缩或混淆代码不可靠;结果只是统计估计而非取证,应表述为“可能”而非确定;基准覆盖 Python、Java、C++、JavaScript,小众语言未验证;单文件证据弱,多文件同作者更可靠。

参考:论文《Whitespaces Don't Lie: Feature-Driven and Embedding-Based Approaches for Detecting Machine-Generated Code》(Nirob 等,2026)。