GitHub Copilot最新升级!61%的Java开发者用来摸鱼,工作效率提升55%
新智元报道
编辑:好困
【新智元导读】最近,GitHub发布了Copilot的最新改进,功能更强,响应更快。
2月14日,GitHub发布了个人版和企业版Copilot的重大更新。
简单来说就是,升级之后的GitHub Copilot将会具有更高的代码质量,以及更快的响应速度。
更强大的AI模型,更好的代码建议
自发布以来,GitHub Copilot已经为超过一百万人开发者提供了更强生产力,帮助他们提高了55%的编码速度。
但早在2022年6月首次推出时,只有27%的开发者会选择使用GitHub Copilot生成的代码。
如今,这一数字已经上升到了46%。甚至在Java中,达到了61%。
官方研究显示,在使用GitHub Copilot的开发者中,有90%表示可以更快地完成任务,其中73%的人能够更好地保持顺畅并节省精力。
与此同时,高达75%的开发者在使用Copilot时感到更有成就感,并且能够专注于工作。
为了实现这一目标,GitHub做了如下关键技术改进:
- 升级后的AI Codex模型
将Copilot升级为新的OpenAI Codex模型,为代码合成提供了更好的结果。
- 更好的上下文理解
通过一种称为Fill-In-the-Middle(FIM)的新范式,改进了GitHub Copilot给出的代码建议。这种方法不仅会考虑代码的前缀,还会利用已知的代码后缀,并在中间留出空白让GitHub Copilot来填补。如此一来,Copilot就有了更多关于预期代码的上下文信息,以及自己应该如何去和程序的其他部分保持一致。
- 轻量级的客户端模型
使用轻量级客户端模型更新了VS Code的GitHub Copilot扩展,从而提高了建议代码的整体接受率。现在,GitHub Copilot通过使用关于用户上下文的基本信息(例如,上一个建议是否被接受),将不必要的建议减少了4.5%。
用新的AI系统过滤安全漏洞
此外,GitHub还推出了一个基于AI的漏洞过滤系统,可以实时阻止不安全的编码模式,使GitHub Copilot建议更加安全。
新系统所采用的方法是,通过LLM来近似静态分析工具的操作。目前,最常见的几种易受攻击的编码模式,包括硬编码凭证、SQL注入和路径注入,都可以得到有效的处理。
凭借着强大的的计算资源和先进的AI模型,GitHub Copilot甚至可以在不完整的代码片段中,检测到易受攻击的模式。
传统上,安全漏洞检测工具是在构建或发布时使用静态代码分析工具对整个存储库进行检测。原因如下:
- 代码是完整的,因此扫描工具对代码库有完整的上下文,并且可以跟踪可以确定代码是否易受攻击的依赖项。
- 静态分析工具可以安全地假定代码在语法上是正确的,并且可以利用语言编译器来获得更高的准确性。
- 这些阶段并没有明确时间限制,因此有更多时间来检测漏洞的静态分析工具,并不是为快速检测而设计。
而人工智能的这种应用正在从根本上改变我们解决漏洞的方式,并提供比具有局限性的传统漏洞检测工具更大的价值。
企业版Copilot正式发布
目前,有超过400家企业都在使用GitHub Copilot。
现在,随着GitHub Copilot for Business的推出,Copilot的能力将向每个开发者、团队、组织和企业开放。此外,GitHub还将引入更先进的OpenAI模型和新功能,为企业带来更大的利益。
新功能一览:
- 更强大的AI模型
新的建模算法提高了代码建议的质量。
- 基于AI的安全漏洞过滤
GitHub Copilot通过针对硬编码凭证、SQL注入和路径注入等问题,自动阻止常见的不安全代码建议。
- VPN代理支持
GitHub Copilot可以与VPN协同工作,包括使用自签证书,因此开发者可以在任何工作环境中对其进行访问。
- 注册简单
任何公司都可以快速在线购买Copilot for Business许可证,并轻松分配席位——即使他们不使用GitHub平台的源代码。
参考资料:
https://github.blog/2023-02-14-github-copilot-now-has-a-better-ai-model-and-new-capabilities/
https://github.blog/2023-02-14-github-copilot-for-business-is-now-available/
相关文章
- 解惑4:java是值传递还是引用传递
- java 415_@RequestBody接受参数报415错误「建议收藏」
- java打印数组_Java中打印数组的三种方式
- java生成时间戳类型_Java获取当前时间戳的方法有哪些
- 【Java】枚举
- Java入门代码_java编程自学网
- intellij怎么创建Java_intellij idea创建java项目
- Java 8 使用 Stream 把 List 转换为 map
- 【错误记录】Android Studio 4.2.1 编译报错 ( 设置支持的 Java 和 Kotlin 版本 | java.lang.BootstrapMethodError )
- Java学习笔记之一java关键字及作用详解编程语言
- Java两整数相除保留两位小数详解编程语言
- 一个例子让你彻底理解java回调机制详解编程语言
- java中成员变量与局部变量的区别详解编程语言
- Java动态代理一——动态类Proxy的使用详解编程语言
- Java操作Oracle数据库:实现数据库连接与访问(java连接oracle数据库)
- 持久化Java持久化技术与Redis高级应用(redis高级之java)
- Redis Java: 解决过期问题(redisjava过期)
- 策略 Java 基于 Redis 的过期策略(redisjava过期)
- 让Java桥接Linux新世界的重要性(java链接linux)
- 在Linux环境下轻松搭建Java开发环境(linux下搭建java)
- Java如何查询MySQL?25字(java查询mysql)
- 使用Java轻松读取Redis数据 – 一步一步指南!(java读取redis)
- 使用Java连接SQL Server数据库,轻松实现数据交互(java连sqlserver)
- Java与MySQL分页实现技巧(javamysql分页)
- Java编程与Oracle技术创造技术价值的奥秘(java编程oracle)
- 从Java到Oracle轻松操作数据库(java写oracle库)