人工写代码不能随便抄开源代码,就连 AI 输出代码都不能随便输出? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
cnbatch
V2EX    程序员

人工写代码不能随便抄开源代码,就连 AI 输出代码都不能随便输出?

  •  
  •   cnbatch 51 天前 2743 次点击
    这是一个创建于 51 天前的主题,其中的信息可能已经有所发展或是发生改变。

    前一个好理解,是出于法律顾虑。以 GPL 为例:

    • 商业公司的工作项目,不能随便使用 GPL 的代码,只有少数情况可以直接抄(比如不公开、不对外服务的内部软件)
    • MIT 许可证、BSD 许可证之类的宽松 License 的项目,不能直接抄 GPL 代码,要么学 Google Android 那样搞个中间层(小心翼翼),要么走 Clean room design 那一套(相对费力)

    有些人以为开源世界之间的代码可以随便抄,其实并不是的


    至于后一个,我目前工作的公司向微软订了企业版 Github Copilot (登录时用的是 emu 专用账号),在 vscode 聊天框使用时,偶然会来这么一幕:输出到一半突然停止,然后删掉刚才的全部内容,只留下一句

    Sorry, the response matched public code so it was blocked. Please rephrase your prompt.

    stackoverflow 有相关提问:
    https://stackoverflow.com/questions/79091544/
    看得出遇到这种事的人并不少

    相关的 Github 文档有提到:
    https://docs.github.com/zh/copilot/how-tos/manage-your-account/manage-policies#enabling-or-disabling-suggestions-matching-public-code

    GitHub Copilot 会根据 GitHub 上的公共代码检查代码建议及其周围约 150 个字符的代码

    如果账号类型是个人账号,打开 Github 页面进入自己 Profile 里面可以改设置

    麻烦的是,emu 专用账号的管理权是在公司手上,员工无法改

    Github 自己的文档证实了这一点:

    如果你是 GitHub Enterprise Cloud 的组织成员,已通过你的组织分配了 GitHub Copilot 席位,你将无法在个人帐户设置中配置与公共代码匹配的建议。 与公共代码匹配的建议设置将从你的组织或企业继承

    “公共代码匹配”这个设置项,这应该也是出于法律顾虑?如果是怕生成出来的代码“意外地”接近于现有的 GPL 代码,那倒是情有可原,毕竟商业公司顾虑很重(但对于用户而言真是无可奈何)


    是 GitHub Copilot 会这样,还是各个辅助编码的 AI 都这样?

    10 条回复    2025-08-22 10:59:57 +08:00
    shakaraka
        1
    shakaraka  
    PRO
       51 天前
    AI 输出的东西还不是人为控制的么,有啥想不通,又不是一个独立个体
    Hieast
        2
    Hieast  
       51 天前   2
    才 150 个字符?那理论上可以写程序制造垃圾代码做专利流氓,用常见变量和操作符专门生成 150 字符长度的垃圾代码,让你啥都写不出来。
    cnbatch
        3
    cnbatch  
    OP
       51 天前
    @wunonglin 我发这个帖不是“想不通”,而是吐槽 Github 的限制过于死板
    2L 已经提到了可能的后果
    GDSR
        4
    GDSR  
       51 天前 via Android
    @Hieast 天才
    Hieast
        5
    Hieast  
       51 天前
    @GDSR 现在很多人苦论文查重久矣,真自己写的也能查出一堆重复,反而洗稿用一些不常见的字词、不太通顺的语法就能过,让人不禁质疑这就是另一种形式的“以代码行数定工作量”。到时候大模型( AI )为了反制重复,生成乱码变量就搞笑了。
    billlee
        6
    billlee  
       50 天前
    AI 不主张输出代码的版权,版权属于你的公司,那侵权的责任也属于你的公司。如果 copilot 不提供这个功能,很多公司就会直接禁止员工使用 copilot.
    lixile
        7
    lixile  
       50 天前
    究其原因在于 开源管理
    在大部分大厂合规里面有开源合规
    开源合规关键在于 license 引用方式 分发方式
    对外分发的情况下
    GPL LGPL 在于进程引用(一般为 rpc ) LGPL 为需要动态链接
    MIT 等 最好直接按库引用

    问题回到 op 说的 150 字符 这里涉及到片段引用 业界有 fossid blackduck 等工具扫描 ,片段引用在于 1 、无法跟踪引用代码后续演进,如果有对应漏洞无法及时修复。
    2 、开源协议风险 特别是 GPL 系列的协议
    不同公司中 我见过 20 行 50 行 120 行等做代码相似度 需要整改的
    对于过于死板的问题 就是 120 字符是否合理 以及 对应的 hash 化后 相似度匹配算法的问题 可能实现不太过
    (个人觉得真的 120 字符太短了 太容易匹配上了)
    seWindows
        8
    seWindows  
       50 天前
    Linux 的 yes 命令。无论那种“正常”的 C 实现,相似度绝对高于 60%。除非你故意绕弯子。但是正常人编写不可能绕弯子。
    cnbatch
        9
    cnbatch  
    OP
       49 天前
    @lixile 一百多个字符确实短得离谱,要是像 8L 提到的那种特殊情况,AI 的输出说不定频繁“撞墙”没法看

    看得出目前业界对于相似度的判断标准算不上成熟,实在粗暴又死板,十分无奈
    keakon
        10
    keakon  
       49 天前
    其他 AI agent 都不会审查输出的代码,换一个吧
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     3007 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 31ms UTC 13:27 PVG 21:27 LAX 06:27 JFK 09:27
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86