Copilot Workspace是GitHub对人工智能驱动的软件工程的诠释

embedded/2024/12/21 8:14:35/
aidu_pl">

软件开发的未来是人工智能驱动的集成开发环境吗?至少GitHub 是这样想的。

在今年初秋于旧金山举行的 GitHub Universe 年度大会之前,GitHub 发布了 Copilot Workspace,这是一种开发环境,利用 GitHub 所称的 “Copilot 驱动的代理”,帮助开发人员用自然语言进行头脑风暴、规划、构建、测试和运行代码。 Copilot,GPT4.0,Google Play,Claude,Overleaf, Midjourney, OF, X等等平台现已可通过WildCard订阅。

乔纳森-卡特(Jonathan Carter)是GitHub软件研发团队GitHub Next的负责人,他认为Workspace是GitHub人工智能编码助手Copilot的进化版,是在最近推出的Copilot Chat等功能基础上发展起来的更通用的工具,Copilot Chat可以让开发人员用自然语言询问有关代码的问题。WildCard也支持Claude, Midjourney, Adobe, Patreon等的订阅。

“通过研究,我们发现,在许多任务中,开发人员最大的障碍在于入门,尤其是不知道如何解决【编码】问题,不知道要编辑哪些文件,不知道如何考虑多种解决方案及其权衡。卡特说:”因此,我们希望打造一个人工智能助手,在开发人员开始一个想法或一项任务时就能与他们见面,减少开始时所需的激活能量,然后与他们合作,在整个核心库中进行必要的编辑。

据不完全统计,Copilot 拥有 180 多万付费个人用户和 5 万家企业用户。但卡特预计,像 Workspace 这样具有广泛吸引力的功能扩展将吸引更多用户。

“由于开发人员花费大量时间处理[编码问题],我们相信我们可以通过与人工智能建立’思想伙伴关系’,帮助开发人员提高日常工作能力。你可以把 Copilot Workspace 看作是一种辅助体验和开发环境,它是对现有工具和工作流程的补充,能够简化开发人员的一类任务…我们相信,在不受现有工作流程限制的 AI 原生开发人员环境中,可以实现很多价值。”

毋庸置疑的是,让 Copilot 盈利肯定有内部压力。

据《华尔街日报》报道,Copilot 平均每个用户每月损失 20 美元,有些用户每月给 GitHub 带来的损失高达 80 美元。竞争对手的服务数量也在不断增加。亚马逊的 CodeWhisperer 去年底向个人开发者免费开放。此外还有一些初创公司,如 Magic、Tabnine、Codegen 和 Laredo。

Workspace 由 OpenAI 的 GPT-4 Turbo 模型支持,它可以根据对 GitHub 代码库的注释、问题回复和更大的代码库的了解,制定一个计划来(尝试)消除错误或实现新功能。开发人员会收到修复错误或实现新功能的建议代码,以及验证和测试代码所需的事项列表,还有编辑、保存、重构或撤销代码的控件。

image-20240430093403396

建议的代码可以直接在 Workspace 中运行,并通过外部链接在团队成员之间共享。这些团队成员一旦进入 Workspace,就可以根据自己的需要完善和修改代码。

启动 Workspace 最明显的方式可能是 GitHub 仓库中问题和拉取请求左侧的新 “在 Workspace 中打开 ”按钮。点击它可以打开一个字段,用自然语言描述要完成的软件工程任务,比如 “为这个拉取请求中的变更添加文档”,一旦提交,就会添加到新的专用 Workspace 视图中的 “会话 ”列表中。

image-20240430093529900

Workspace 可以系统地逐步执行请求,创建规范、生成计划,然后执行该计划。开发人员可以深入到这些步骤中的任何一步,详细查看建议的代码和更改,并根据需要删除、重新运行或重新排序这些步骤。

卡特说:“如果你问任何开发人员,他们在新项目中最容易卡壳的地方是什么,你经常会听到他们说是不知道从哪里开始。Copilot Workspace 减轻了这一负担,为开发人员提供了一个开始迭代的计划。

image-20240430093615271

Workspace 将于本周一进入技术预览阶段,并针对包括移动设备在内的一系列设备进行了优化。

重要的是,由于是预览版,Workspace 并不在 GitHub 的知识产权赔偿政策范围内,该政策承诺为面临第三方索赔的客户提供法律费用援助,这些第三方索赔声称他们使用的人工智能生成代码侵犯了知识产权。(众所周知,人工智能生成模型会重复使用它们的训练数据集,而 GPT-4 Turbo 的部分训练数据集就是基于受版权保护的代码)。

GitHub 表示,它还没有决定如何将 Workspace 产品化,但会通过预览版 “更多了解它的价值以及开发者如何使用它”。

我认为更重要的问题是:Workspace 能否解决 Copilot 和其他人工智能驱动的编码工具所存在的问题?

同名代码分析工具的开发商 GitClear 对过去几年中提交到项目仓库的超过 1.5 亿行代码进行了分析,发现 Copilot 导致更多错误代码被推送到代码库,更多代码被重新添加,而不是重复使用和精简,这让代码维护者头疼不已。

在其他地方,安全研究人员警告说,Copilot 和类似工具会扩大软件项目中现有的漏洞和安全问题。斯坦福大学的研究人员发现,接受人工智能编码助手建议的开发人员往往会编写出安全性较低的代码。(GitHub 向我强调,它使用了一个基于人工智能的漏洞预防系统来阻止不安全的代码,此外还使用了一个可选的代码重复过滤器来检测公共代码的重复)。

然而,开发人员并不回避人工智能

在 2023 年 6 月的一次 StackOverflow 民意调查中,44% 的开发人员表示,他们现在在开发过程中使用人工智能工具,26% 的开发人员计划很快使用。Gartner 预测,到 2028 年,75% 的企业软件工程师将使用人工智能代码助手。

通过强调人工审核,也许 Workspace 确实可以帮助清理人工智能生成的代码所带来的一些混乱。随着 Workspace 进入开发者的手中,我们很快就会知道答案。

“我们开发 Copilot Workspace 的主要目标是利用人工智能降低复杂性,让开发人员能够更自由地表达创造力和进行探索。卡特说:“我们真心相信,人类与人工智能的结合永远优于二者中的任何一方,而这正是我们对 Copilot Workspace 所寄予的厚望。”


http://www.ppmy.cn/embedded/31601.html

相关文章

Delta lake with Java--数据增删改查

之前写的关于spark sql 操作delta lake表的,总觉得有点混乱,今天用Java以真实的数据来进行一次数据的CRUD操作,所涉及的数据来源于Delta lake up and running配套的 GitGitHub - benniehaelen/delta-lake-up-and-running: Companion reposito…

java中对文件的基本操作

文件IO 文件IO。啥叫文件的IO? 他就是指:1.Input(输入)2.Output(输出)。 比如,我们的电脑可以从网络中下载文件,也可以通过网络上传文件等等很多的例子,都体现了输入和…

展开说说:Android Fragment完全解析-卷三

本文章分析了Fragment的管理器FragmentManager、事务FragmentTransaction 、以及完整的声明周期和动态加载Fragment的原理解析。 1、Fragment管理器 FragmentManager 类负责在应用的 fragment 上执行一些操作,如添加、移除或替换操作,以及将操作添加到…

【论文阅读】Tutorial on Diffusion Models for Imaging and Vision

1.The Basics: Variational Auto-Encoder 1.1 VAE Setting 自动编码器有一个输入变量x和一个潜在变量z Example. 获得图像的潜在表现并不是一件陌生的事情。回到jpeg压缩,使用离散余弦变换(dct)基φn对图像的底层图像/块进行编码。如果你给…

使用Postman对@RequestPart和HttpServletRequest组合传参方式

使用Postman对RequestPart和HttpServletRequest组合传参方式 方法代码如下: /*** 发布*/ApiOperation("发布")ApiImplicitParams({ApiImplicitParam(name "req", value "json格式", dataType "Map", dataTypeClass Ma…

【Python可视化】pyecharts

Echarts 是一个由百度开源的数据可视化,凭借着良好的交互性,精巧的图表设计,得到了众多开发者的认可。而 Python 是一门富有表达力的语言,很适合用于数据处理。当数据分析遇上数据可视化时,pyecharts 诞生了。 需要安…

C# Solidworks二次开发:枚举应用实战(第十三讲)

大家好,今天继续介绍我们的枚举应用系列。 下面是今天要介绍的枚举: (1)第一个为swsUserPreferenceIntegerValue_e,这个枚举的含义为用户偏好整数值,下面是官方的具体枚举值: MemberDescript…

RHCE shell-第一次作业

要求: 1、判断当前磁盘剩余空间是否有20G,如果小于20G,则将报警邮件发送给管理员,每天检査- 次磁盘剩余空间。 2、判断web服务是否运行(1、查看进程的方式判断该程序是否运行,2、通过查看端口的方式 判断该程序是否运…