V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
cnbatch
V2EX  ›  程序员

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

  •  
  •   cnbatch · 18 天前 · 2504 次点击

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

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

    看得出目前业界对于相似度的判断标准算不上成熟,实在粗暴又死板,十分无奈
    keakon
        10
    keakon  
       16 天前
    其他 AI agent 都不会审查输出的代码,换一个吧
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2498 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 10:38 · PVG 18:38 · LAX 03:38 · JFK 06:38
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.