前阵子帮团队申报智能工单调度系统的软著,代码大半是用AI生成的,第一次提交当天就被打回来,审查员给出的理由是“代码存在明显通用生成特征,无对应业务辨识度”。我之前陆陆续续报过二十多份软著,还第一次碰到这种驳回理由,后来跟版权中心的朋友聊才知道,现在AI生成代码的申报量太大,审查员已经有一套完整的识别标准了,稍不注意就过不了。
我去年帮三个创业团队的朋友报软著,有两个都是栽在AI生成的代码清单上,其中一个刚好赶上当地高新企业申报的窗口期,离截止就剩三天,急得整宿睡不着。很多人觉得代码清单就是把代码导出来凑够60页就行,放到AI生成代码的场景里,真不是这么回事。你要是直接把AI吐的代码原封不动交上去,90%的概率会被驳回,要么是有明显的AI生成标记,要么是通用代码占比太高,看不出你这个软件的独创性。
先给大家提个醒,提交之前先对照软著代码清单规范过一遍,别连最基础的格式要求都没满足就提交,白白浪费一两周的审核时间。
首先要清掉所有AI生成的显性标记。很多AI生成代码的时候会自带注释,比如/* Generated by XXXX */或者// 以下为XXX功能实现代码,这种注释哪怕只剩一条,审查员一眼就能认出来。还有那种AI写的非常规整的功能说明注释,比如“// 该函数用于实现用户登录验证,参数为用户名和密码,返回值为布尔类型”,也要改成更像个人开发习惯的写法,比如改成“// 23年10月改的登录逻辑,之前加了验证码校验忘更这里,导致线上bug”,带点具体的开发痕迹,可信度一下子就上来了。
然后是调整通用代码片段。AI最喜欢用现成的通用封装,比如HTTP请求工具类、数据库CURD的基础方法,这些代码成千上万的项目都在用,根本体现不了你这个软件的独创性。我的做法是把这些通用方法里的变量名改成和自己业务相关的,比如原来的通用参数req,我改成work_order_req,再加几个和自己业务绑定的特殊参数,比如我们工单系统里特有的超时判定字段is_delay,加进去之后整个代码的辨识度就高了很多,不会和别的项目撞代码。
还有一个很多人容易忽略的点,就是前后各30页的内容选择。软著要求提交的是代码的前30页和后30页,很多人直接按文件目录导,前面30页全是引入的第三方依赖声明,后面30页全是配置文件,一点核心业务逻辑都没有,不驳回你驳回谁?我一般会把核心的业务逻辑代码,比如工单调度的算法、权限判定的逻辑这些,刻意调整到前后30页的范围内,哪怕要改下代码文件的排序也行,核心逻辑露出来,审查员才能看到你这个软件的实际价值。
之前我每次整理代码清单都要花小半天,要筛核心代码、改注释、调每页的行数,后来同行给我推了软著Pro,直接把整理好的代码包传上去,自动帮你剔掉重复代码、筛选核心逻辑到前后30页,连每页要求的50行都给你卡得严丝合缝,我上次报那个工单系统的软著,用这个工具十分钟就把代码清单导出来了,第二次提交直接过审,省了我好多麻烦。
说两个我见过的最离谱的踩坑案例,一个是朋友把AI生成的测试代码也一起导进去了,代码里还有一堆console.log('测试')的调试语句,审查员直接打回来让他重交。还有一个是代码里带了别的开源项目的GPL协议声明,直接被判定为代码归属有问题,申诉了半个月才搞定。这些问题其实提前花半小时过一遍就能避免,别等到被驳回了才着急。要是你不确定自己整理的代码能不能过,可以去看一下AI生成代码软著申报指南,里面列了最新的审查判定标准,对照着改基本不会出问题。
很多独立开发者或者小团队的创始人不重视代码清单的整理,觉得只要软件是自己做的就肯定能过,现在AI生成代码占比越来越高,审查标准也在跟着调整,你提交的代码清单没有自己的业务特征,哪怕真的是你带着AI一行行调出来的,也没法证明独创性。
上次跟版权中心的朋友吃饭,他说现在每个审查员每天要看几十份代码清单,AI生成的代码他们扫一眼就能认出来,那种变量名统一、注释全是功能说明、没有任何个人开发痕迹的,基本都会被打回来让补说明,补说明至少要多花一周时间,要是赶补贴或者资质申报的窗口期,真的耽误不起。
我现在帮团队或者朋友报软著,AI生成的代码整理完之后,都会自己先翻一遍,看看有没有那种一看就不是人写的内容,再找个没参与项目的同事扫一眼,要是他能看出来代码是AI写的,就再调整一遍,直到看起来有明显的个人开发痕迹为止。毕竟报软著本来就是为了拿资质拿补贴,多花点时间把代码清单整理好,一次过审比什么都强。