前一个好理解,是出于法律顾虑。以 GPL 为例:
有些人以为开源世界之间的代码可以随便抄,其实并不是的
至于后一个,我目前工作的公司向微软订了企业版 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 都这样?
![]() |
1
wunonglin PRO AI 输出的东西还不是人为控制的么,有啥想不通,又不是一个独立个体
|
2
Hieast 17 天前 ![]() 才 150 个字符?那理论上可以写程序制造垃圾代码做专利流氓,用常见变量和操作符专门生成 150 字符长度的垃圾代码,让你啥都写不出来。
|
5
Hieast 17 天前
@GDSR 现在很多人苦论文查重久矣,真自己写的也能查出一堆重复,反而洗稿用一些不常见的字词、不太通顺的语法就能过,让人不禁质疑这就是另一种形式的“以代码行数定工作量”。到时候大模型( AI )为了反制重复,生成乱码变量就搞笑了。
|
6
billlee 17 天前
AI 不主张输出代码的版权,版权属于你的公司,那侵权的责任也属于你的公司。如果 copilot 不提供这个功能,很多公司就会直接禁止员工使用 copilot.
|
![]() |
7
lixile 17 天前
究其原因在于 开源管理
在大部分大厂合规里面有开源合规 开源合规关键在于 license 引用方式 分发方式 对外分发的情况下 GPL LGPL 在于进程引用(一般为 rpc ) LGPL 为需要动态链接 MIT 等 最好直接按库引用 问题回到 op 说的 150 字符 这里涉及到片段引用 业界有 fossid blackduck 等工具扫描 ,片段引用在于 1 、无法跟踪引用代码后续演进,如果有对应漏洞无法及时修复。 2 、开源协议风险 特别是 GPL 系列的协议 不同公司中 我见过 20 行 50 行 120 行等做代码相似度 需要整改的 对于过于死板的问题 就是 120 字符是否合理 以及 对应的 hash 化后 相似度匹配算法的问题 可能实现不太过 (个人觉得真的 120 字符太短了 太容易匹配上了) |
![]() |
8
seWindows 17 天前
Linux 的 yes 命令。无论那种“正常”的 C 实现,相似度绝对高于 60%。除非你故意绕弯子。但是正常人编写不可能绕弯子。
|
9
cnbatch OP |
![]() |
10
keakon 16 天前
其他 AI agent 都不会审查输出的代码,换一个吧
|