|
作者:nicky最近科技圈是真热闹,各大公司相继发布了自家的人工智能新产品,ChatGPT、GPT4、文心一言、Bard。微软更是接二连三地宣布将GPT-4应用到Bing搜索引擎、Edge浏览器、Office全家桶中。3月22日其旗下代码托管平台GitHub再次发布重磅“炸弹”:GitHubCopilotX。CopilotX是对2021年发布的Copilot进行了升级,接入GPT-4,并新增了聊天和语音等功能,在CopilotX中,你只需“动动嘴”,它就能把你的代码写了,顺便帮你把测试用例也写了,还能给你解释你看不太懂的代码片段,更能直接让它帮你DeBug,简直是程序员的贴心小助手。接下来就带着大家了解一下CopilotX并上手体验一番。从Copilot到CopilotXGitHubCopilotGitHubCopilot诞生早在2021年GitHub和OpenAI就合作开发了一个面向程序员的生产力提升工具Copilot,用户可以在使用VisualStudioCode、MicrosoftVisualStudio、Vim或JetBrains集成开发环境时通过Copilot自动补全代码,主要面向Python、JavaScript、TypeScript、Ruby和Go等编程语言。可以协助程序员完成自动补全代码块或方法或函数、以及消除重复代码,甚至根据代码注释生成可运行代码。GitHubCopilot底层模型Copilot底层的AI模型由OpenAICodex提供支持,OpenAICodex是基于GPT-3修改后的版本(GPT-3是一种使用深度学习生成类人类文本的语言模型)。接受了一系列英语语言、公共GitHub存储库和其他公开可用源代码的训练,包括来自5400万个公共GitHub存储库的159GB代码的数据集。GitHubCopilot发布2021年6月29日GitHub对外正式发布GitHubCopilot,很快就吸引了众多开发者使用,根据GitHub的数据,截至上个月,Copilot已参与到微软全体云代码仓库中的46%,帮助开发人员将编程速度提高了55%。GitHub的研究还表明,使用GitHubCopilot的开发人员中有90%表示可以更快地完成任务,其中73%的开发人员能够更好地保持顺畅并节省精力,高达75%的开发人员感到更有成就感,并且能够专注于更令人满意的工作。GitHubCopilotXGitHubCopilotX发布随着OpenAI的GPT-4模型的发布,GitHub紧接着就发布了新版本的GitHubCopilotX,CopilotX的AI模型采用的是最新OpenAIGPT-4,毕竟GitHub是微软的亲儿子。GitHubCopilotX致力于改进开发者体验,将提供聊天和语音界面,支持拉取请求,回答文档问题,并通过GPT-4实现更个性化的开发者体验。使用GitHubCopilotX,它可以解释代码的用途,还可以在遇到bugs时让CopilotX尝试去修复它,甚至还可以顺带生成单元测试。GitHubCopilotX愿景GitHub官方博客中提到CopilotX是GitHub对人工智能软件开发未来的愿景。希望能集成到开发人员工作流程的每个部分中。GitHubCopilotX的目标是为每个团队、项目和代码库提供个性化的开发体验,让开发者更高效地开发软件,提高工作满意度。CopilotX核心功能体验CopilotX中的X代表什么GitHub官网中有提到GitHubCopilotX中的X代表什么?其实“X”代表一个占位符,表示希望GitHubCopilot可用的位置,以及期望它能够做什么(例如“Copilotforpull”、“Copilotforsecurity”)。它将产品从单一体验、代码完成扩展到跨开发人员工作流程的X体验。此外,“X”表示我们打算对开发人员成就产生的影响程度。这次GitHub推出的CopilotX包括如下功能:CopilotChat聊天功能:在编辑器中集成与VSCode和VisualStudio的聊天界面,帮助开发者深入分析代码、生成单元测试和修复bug,让你可以边写代码边聊天。CopilotVoice语音功能:允许开发者通过口头指令进行自然语言陈述意图,然后让CopilotVoice完成生成代码片段的繁重工作。CopilotForPullRequests支持PR功能:帮助开发者更好的编写PR描述,并帮助团队更快地审查和合并PR。CopilotCLI终端CLI工具:将自然语言翻译成终端命令。CopilotForDocs文档工具:能够回答有关软件文档的问题,使开发人员免于搜索大量文档。初步支持React、AzureDocs和MozillaDeveloperNetwork(MDN)文档查询。CopilotChat其实可以这样简单的理解CopilotChat=Copilot+ChatGPT,CopilotChat就是给Copilot加上了聊天对话功能并嵌入到IDE中,CopilotChat专注于开发人员场景,并与VSCode和VisualStudio原生集成。它可以识别开发人员输入了哪些代码,显示了哪些错误消息,并将其嵌入到IDE中。开发人员可以深入分析和解释代码块的用途,生成单元测试,并对bug给出修复建议。相比旧版的Copilot,新版的CopilotChat也能识别开发者输入的代码,比如下面示例中,选中一行代码,让CopilotChat解释代码的作用:我们实际上手来一些接地气的例子:首先我们让GitHubCopilot根据代码注释帮我们生成一个程序员面试必备的接雨水的代码。然后我们直接AcceptSolution生成代码,让它继续帮我们生成测试代码,可以看到它很贴心的帮我们生成了一堆测试用例,你可以根据自己的喜好选择一个。更厉害的是它还可以帮你进行不同编程语言间的翻译转换。当然,Copilot的能力还远不如此,还有更多的功能等待你去探索,希望它能成为大家工作中得力的助手。CopilotVoice顾名思义,是的就是动动嘴皮子,让Copilot帮你来写代码,Writecodewithoutthekeyboard。除了编写代码,CopilotVoice还可以进行更多的操作:代码跳转、控制IDE、代码总结。CopilotForPullRequests维护过开源项目,或者用Git进行团队协作的同学应该知道,规范化提交PullRequest(PR)对于项目开发者来说,到底有多重要。一个好的pullrequest描述能让代码审查者一目了然,可以帮助审阅者快速了解你的代码变动情况,减少项目合并出错的可能性,并提升沟通效率,并可以帮助你的团队的其他成员跟上进度。因此为了满足开发人员的需求,Copilot构建了一项功能,允许开发人员在他们的拉取请求描述中插入标记标签。保存描述后,Copilot(由OpenAI的新GPT-4模型提供支持)会根据标记动态提取与分析代码的变更信息,自动生成描述。然后开发人员可以查看或修改建议的描述。支持的标记,主要有以下几种:copilot:summary生成一段摘要总结。copilot:walkthrough详细的更改列表,包括指向相关代码片段的链接。copilot:poem写一首诗来描述本次改动。copilot:all自动生成以上所有内容。随着后续产品的更新迭代,未来,Copilot还会新增Gentest和GhostText的两大功能。Gentest:当Copilot发现提交的PullRequest缺少足够的测试时,会自动提醒开发者,并根据项目需求建议可编辑、接受或拒绝的潜在测试。对于项目所有者来说,这个功能还可以帮助他们去制定关于测试的策略,同时支持开发者遵循这些策略。GhostText:当开发者创建PullRequest时,Copilot会动态地获取代码更改的相关信息,并自动给出建议。此外,GitHub正在进行的其他探索和实验包括:用AI解决问题:可以自动描述如何解决问题,甚至自动建议需要进行的更改。如下,在提交了转移到PyTorch的问题后,新功能可以提供生成代码建议,并发起新的PullRequest。用AI审查PR:由于大量的开发人员将时间花费在代码审查,以及为代码审查准备PR上,这一功能就可以减少审查花费的周期。估计再过不久,AI就能帮你自动调整代码、完善PR、修复Bug了。CopilotCLI影视剧中经常有黑客在电脑屏幕黑窗口前噼里啪啦的不停地敲着一大串的命令,确实非常的酷炫。而在实际中,开发人员真的很难记住那么多复杂的命令,不过不用怕,CopilotCLI它来了,它带着这3个命令来了:??、git?和gh???可以作为任意shell命令的通用goto,在该命令后面输入相关描述,Copilot便会列出最适用该描述的具体命令。比如,你不清楚如何列出所有JavaScript文件,只需要输入:> ?? list js fileCopilotCLI便会提供可参考的命令以及描述,如果不满意,还能进一步更改描述。确定之后,在终端选中Runthiscommand,然后按下回车即可。git?用于专门搜索以及调用git。相比??,它在生成Git命令方面要强大许多。如果你明确要用的是Git命令,那可以优先选择使用这个。gh?结合了GitHubCLI命令的灵活性与查询界面的便捷性,让搜索变得更加快捷、信息展示更为清晰。CopilotForDocs很多开发人员在阅读官方技术文档时一定都遇到过这些问题:文档内容过于基础、过于粗略或者相关信息被拆分到多个页面上,其中充满了不相关的细节。CopilotforDocs就是用来帮助开发者解决上述这些问题的,Copilotfordocs通过定制的摘要为问题呈现最相关的内容,有助于将这些点联系起来,从而避免了开发人员搜索大量文档,更快地为开发人员提供所需信息,包括开发者关于他们正在使用的语言、框架和技术的问题。GitHub称,其将从React、AzureDocs和MDN的文档开始,以便能够与这些项目的开发者和用户一起快速学习和迭代。GitHub正在使用AI扫描这些开源存储库,以帮助开发人员获得答案,因此它的聊天生成的代码内容会比GPT-4所基于的训练数据集更新一些。比较厉害的是CopilotforDocs的个性化内容。它可以根据用户的不同编程水平,对该文档的了解程度,以及想要查找的内容,输出不同的答案。而且开发人员还可以直接从GitHubrepo上获取最新内容档保持同步。并在现有的GitHub权限基础上提供只有自己内部团队可以看到的信息,可以轻松回答有关团队私有内容的问题。CopilotX对软件开发的影响及程序员如何应对看了以上那么多CopilotX强大的功能,程序员也得大呼:”家里水晶被偷了!“其实从ChatGPT出圈以来,大家对AI是否会取代人类工作的讨论已经非常多了,这里就不再赘述了,仅仅简单谈一谈CopilotX对软件开发行业影响的看法以及程序员该如何应对这场危机:CopilotX对软件开发行业影响面向智能软件编程成为趋势,正如电脑成为都市白领打工人的标配,CopilotX之类的编程辅助工具也将成为越来越多软件开发人员称心如意的越来越离不开的助手,让自己的工作更加高效和顺畅。软件开发者的核心工作不再是编码,简单重复的占用大多时间的编码不再是开发人员的主要工作,理解和解决问题、设计和架构系统、优化性能和安全性等会变成程序员的更重要的工作。软件开发的门槛更低,CopilotX可以让更多对软件开发感兴趣的人更加轻松的参与到软件开发工作中,同时,它提高了编程效率和质量,使我们可以在更短的时间内完成更多的工作,它还能帮助我们更好地协作和沟通。超大规模的软件项目管理成为可能,CopilotX的意义不仅仅局限于单个开发者。这个突破性的工具可以通过简化工作流程、减少错误和实现更快的开发周期来重塑整个行业。展望未来,AI编程助手在软件开发领域的前景是无限广阔的。它不仅可以持续升级,克服更多挑战,还可以与其他AI技术结合,拓展更多的应用场景。程序员如何应对CopilotX带来的职业危机感通过前面的文章我们已经体验到了GitHubCopilotX的强大并能预见到它将对未来的软件开发行业产生巨大的影响,那么作为普通的程序员,我们该如何提升那方面的能力才能应对这场职业危机呢?首先,我们要接受事实,GitHubCopilotX等AI辅助编程产品是不可避免的,我们无法阻止技术的发展,作为程序员我们应该接受这个事实,并积极地去拥抱变化,去接受它去使学习它使用它,并让它提高你的生成效率。其次,我们需要提升自身能力,我们需要知道程序员的核心竞争力究竟是什么?是每天提交几百行、上千行代码吗?答案肯定不是,现在和未来的很长一段时间内,程序员的工作模式会成为按照业务需求进行设计拆解并输入提示词,让GitHubCopilotX之类的AI帮你生成代码,然后由你进行验证和修复,让代码能够正常运行,所以程序员首先要提升的是业务理解、需求拆分、架构设计等方面的能力。最后,我们需要学会与AI合作,让程序员+AI形成1+1>2的效果,比如我们要学会当然还有编写提示词的能力!有人可能会说,编写提示词不就是会打字就行吗?非也,一个好的提示词,能让AI快速准确的生成你想要的代码,比如你要在提示词中定义好需要完成的功能、对任务进行拆分、确定输入输出、表达准确避免歧义等等,所以提示词的编写本身就会变得十分的重要,未来程序员的第一课可能并不是学习xx编程语言,而是如何编写提示词。总之,GitHubCopilotX的出现给程序员带来了一定的冲击,但是我们应该以积极的态度去面对它,提高自身能力,与它合作,从而更好地适应技术的发展。附:GitHubCopilotX申请使用教程说了这么多GitHubCopilotX的新feature,是不是有点迫不及待想要上手试一试呢?目前GitHubCopilotX刚刚推出不久,想要抢先体验,需申请加入等待名单队列中,成功排上队之后就可以畅玩了。具体的步骤如下:注册GitHub账号https://github.com/signup申请试用CopilotChat:https://github.com/github-copilot/chat_waitlist_signup/CopilotVoice:https://githubnext.com/projects/copilot-voice/CopilotforDocs:https://githubnext.com/projects/copilot-for-docs/CopilotforPRs:https://githubnext.com/projects/copilot-for-pull-requests/CopilotCLI:https://githubnext.com/projects/copilot-cli/安装代码编辑器如VisualStudioCode、MicrosoftVisualStudio、JetBrains等安装GitHubCopilot插件以VisualStudioCode为例(下载VSCodehttps://code.visualstudio.com/)进入VSCode的Extensions面板(快捷键Ctrl+Shift+X),在搜索框中输入“GitHubCopilot”并回车,在搜索结果中找到“GitHubCopilot”插件并选择相应的插件点击安装。登录GitHub账号:安装完成后,单击VSCode底部状态栏中的GitHubCopilot图标,进入GitHubCopilot面板。首次使用需要登录GitHub账户,可以选择使用GitHub账户登录或者输入PersonalAccessToken登录。使用GitHubCopilot插件:在编辑器中输入关键字或者语句时,GitHubCopilot会自动出现一个提示框,用户可以选择其中的建议代码或者继续输入以获得更多的建议。用户可以通过快捷键或者命令面板启动GitHubCopilot,具体方法可以查看编辑器插件的帮助文档。确认和编辑代码:GitHubCopilot生成的代码不一定完全符合用户的需求,因此用户需要对生成的代码进行确认和编辑。用户可以通过按下回车键或者Tab键来接受或者拒绝GitHubCopilot的建议代码,也可以手动编辑代码以符合自己的需求。Copilot也提供了一些快捷键,可以很方便地使用。接受建议:Tab拒绝建议:Esc打开Copilot:Ctrl+Enter(会打开一个单独的面板,展示10个建议)下一条建议:Alt/Option+]上一条建议:Alt/Option+[触发行内Copilot:Alt/Option+\(Coplit还没有给出建议或者建议被拒绝了,希望手工触发它提供建议)一些使用技巧:CopilotX是一款基于人工智能技术的代码生成工具,它可以为程序员提供更高效的编写代码的方式。下面是一些使用技巧:确定上下文:在使用CopilotX之前,需要确定当前需要编写的代码的上下文,包括编程语言、函数、类等等。这样可以帮助CopilotX更好地理解你的需求,从而生成更准确的代码。使用良好的注释:在编写代码时,建议使用良好的注释,这可以帮助CopilotX更好地理解你的代码,从而生成更准确的代码。给出明确的指令:在使用CopilotX时,需要给出明确的指令,比如输入函数名、变量名等等。这样可以帮助CopilotX更好地理解你的需求,从而生成更准确的代码。不断尝试:CopilotX是一款基于人工智能技术的工具,它的生成结果可能并不总是准确的。因此,我们需要不断尝试,比较不同的生成结果,从而找到最优的方案。结合自己的思考:虽然CopilotX可以生成大部分代码,但是在某些情况下,我们仍然需要自己思考,比如算法的实现、架构设计等等。因此,在使用CopilotX时,需要结合自己的思考,从而更好地完成编码任务。总之,CopilotX是一款非常有用的代码生成工具,但是它并不能完全取代程序员的工作。因此,在使用它时,需要结合自己的思考和经验,从而更好地完成编码任务Http代理有些用户可能会遇到Copilot不工作的问题,原因是Copilot无法访问互联网或Githubapi。你可以在输出面板上看到以下错误信息:GitHubCopilotcouldnotconnecttoserver.Extensionactivationfailed:"connectETIMEDOUTxxx.xxx.xxx:443"。在这种情况下,你需要设置http代理。首先,获取你的http代理信息。你可以向你的网络管理员询问代理地址和端口,或者如果你使用代理软件,你可以在代理软件设置中找到代理地址和端口。下面是一个使用代理软件"ClashX"的例子,你可以在"设置"标签中找到代理地址和端口,代理地址是"127.0.0.1:1080"。然后,打开VSCode的设置,搜索http.proxy,并设置代理地址和端口。设置完成后,重新启动VSCode,Copilot应该可以正常工作。
|
|