?整理 | 言征
微軟繼續(xù)放大招,周三,Github首席執(zhí)行官Thomas Dohmke發(fā)表博客,宣布接入GPT4模型后的新版本:Copilot X。
Thomas Dohmke昨天還向他的孩子演示了如何用Python編程蛇游戲。聊天窗口可以解釋代碼段應(yīng)該做什么,創(chuàng)建測(cè)試代碼的方法,并提出修復(fù)錯(cuò)誤的建議。開(kāi)發(fā)人員也可以通過(guò)語(yǔ)音給出指示或提出問(wèn)題。
1.X是什么
這個(gè)新版本X,非??犰?,而且聽(tīng)名字,多少有了全家桶的味道。官網(wǎng)上,進(jìn)一步解釋了X的含義:
“X”代表一個(gè)占位符,表示我們希望GitHub Copilot可用的位置,以及我們期望它能夠做什么。它將產(chǎn)品從單一體驗(yàn)、代碼完成擴(kuò)展到跨開(kāi)發(fā)人員工作流程的X體驗(yàn)。GitHub Copilot的未來(lái),總是要比現(xiàn)在更豐富。此外,“X”表示我們打算對(duì)開(kāi)發(fā)人員成就產(chǎn)生的影響程度。因此,這是一份意向聲明,也是對(duì)開(kāi)發(fā)人員的承諾,因?yàn)槲覀儗⒐餐M(jìn)入人工智能時(shí)代。我們希望業(yè)界對(duì)GitHub Copilot充滿信心,并希望工程團(tuán)隊(duì)將其視為未來(lái)發(fā)展的紐帶。
如我們所料,Github與OpenAI合作創(chuàng)建了GitHub Copilot,這個(gè)是第一個(gè)使用OpenAI的Codex模型(GPT-3的后代)的AI開(kāi)發(fā)工具。
而GitHub Copilot X,則代表著Github對(duì)AI軟件開(kāi)發(fā)未來(lái)的愿景。它不僅采用了OpenAI的新GPT-4模型,還為Copilot引入了聊天和語(yǔ)音功能,并將Copilot用于拉取請(qǐng)求、命令行和文檔等。
2.GPT-4模型支持
盡管GPT4模型剛剛發(fā)布,但我們已經(jīng)在邏輯推理和代碼生成方面看到了顯著的進(jìn)步。
Github重新思考了“拉取請(qǐng)求”和“文檔”的工作,它可以用GPT4來(lái)完成。
有了GPT-4,AI的發(fā)展?fàn)顟B(tài)開(kāi)始趕上Copilot的雄心——?jiǎng)?chuàng)建一個(gè)與程序員結(jié)伴的AI,改善開(kāi)發(fā)者的開(kāi)發(fā)體驗(yàn),完成每一項(xiàng)開(kāi)發(fā)任務(wù)。
此外,它還幫助GitHub Copilot更多地了解開(kāi)發(fā)人員的代碼庫(kù),以便在拉取請(qǐng)求過(guò)程中提供更具針對(duì)性的建議和更好的文檔摘要。
簡(jiǎn)單一句話,Copilot X,可以提供聊天和語(yǔ)音界面、支持拉取請(qǐng)求、在文檔上回答問(wèn)題,并采用OpenAI的GPT-4來(lái)獲得更個(gè)性化的開(kāi)發(fā)人員體驗(yàn)。
同時(shí),GitHub計(jì)劃針對(duì)不同的任務(wù)使用不同的人工智能模型。代碼完成功能需要快速的人工智能,以免中斷開(kāi)發(fā)人員的編程流程,它將繼續(xù)使用優(yōu)化速度而非完美準(zhǔn)確性的舊技術(shù)。Dohmke說(shuō),聊天功能將使用較新的GPT4,OpenAI稱(chēng)其準(zhǔn)確率更高。
3.Copilot Voice
GitHub Copilot Chat建立在OpenAI和微軟對(duì)ChatGPT和新Bing所做的工作之上。它還將加入之前演示的語(yǔ)音編碼AI技術(shù)的擴(kuò)展,現(xiàn)在改名了:GitHub Copilot voice,開(kāi)發(fā)人員可以在這里口頭給出自然語(yǔ)言提示。
不用敲鍵盤(pán),只需要語(yǔ)音就能命令它代勞編程,也許,這就叫重塑生產(chǎn)力吧?
4.Copilot for Docs
Copilot for Docs,是一個(gè)實(shí)驗(yàn)工具,使用聊天界面為用戶提供人工智能生成對(duì)文檔問(wèn)題的回答,包括開(kāi)發(fā)人員對(duì)他們使用的語(yǔ)言、框架和技術(shù)的問(wèn)題。有意思的是,開(kāi)發(fā)者可以通過(guò)這樣的方式,與這些項(xiàng)目的開(kāi)發(fā)維護(hù)者進(jìn)行對(duì)話與交流。官網(wǎng)給出的特點(diǎn)如下:
(1)答案可信
Copilot for docs使用庫(kù)的維護(hù)人員編寫(xiě)的最新信息,并支持從原始文檔中引用答案。
(2)賦予開(kāi)發(fā)人員權(quán)力
Copilot for docs不是預(yù)言家,而是通過(guò)鏈接到相關(guān)文檔以供未來(lái)參考,幫助開(kāi)發(fā)人員加深對(duì)他們使用的工具的理解。
(3)動(dòng)態(tài)的個(gè)性化內(nèi)容
一個(gè)問(wèn)題的理想答案因開(kāi)發(fā)人員的經(jīng)驗(yàn)水平、自身對(duì)庫(kù)的理解,甚至當(dāng)前的情緒而異!Copilot正在探索快速提供該上下文的方法,以便Copilot for docs能夠提供為使用者定制的最有用的答案。
5.Copilot PR(pull-request)
開(kāi)發(fā)人員在代碼審查和準(zhǔn)備代碼審查的PR上花費(fèi)了大量的時(shí)間。如何簡(jiǎn)化這一流程呢?
Copilot PR在拉取請(qǐng)求描述中添加了對(duì)人工智能標(biāo)簽的支持。這些標(biāo)簽由GitHub Copilot根據(jù)更改后的代碼自動(dòng)填寫(xiě)。然后,開(kāi)發(fā)人員可以查看或修改建議的描述。
在下面的視頻中,我們使用AI模型來(lái)描述拉取請(qǐng)求中的變化并查看代碼。Copilot可以提出可操作的改進(jìn)建議,使用者點(diǎn)擊接受即可進(jìn)行審查。也許這不會(huì)取代人工評(píng)審,但我們認(rèn)為它可以減少評(píng)審周期中花費(fèi)的時(shí)間。
官網(wǎng)給出的示例:其中提出了關(guān)于轉(zhuǎn)移到PyTorch的問(wèn)題,并通過(guò)AI模型舉例來(lái)說(shuō)明如何做到這一點(diǎn),生成代碼建議并提出新的拉取請(qǐng)求。
值得注意的是, GPT-4可以自動(dòng)填充PR的描述、標(biāo)簽,甚至可以自動(dòng)提醒開(kāi)發(fā)者單測(cè)覆蓋率的不足。如果可以在CI運(yùn)行之前就提醒到用戶,那能節(jié)省不少時(shí)間。
6.Copilot CLI
經(jīng)常會(huì)遇到記不住shell命令和flag的情況,但是我們知道需要什么功能,這時(shí)候用Copilot CLI就好。
在編輯器和拉取請(qǐng)求旁邊,終端是開(kāi)發(fā)人員花費(fèi)最多時(shí)間的地方。但即使是最熟練的開(kāi)發(fā)人員也需要滾動(dòng)瀏覽許多頁(yè)面,才能記住許多命令的精確語(yǔ)法。這就是我們推出GitHub Copilot CLI的原因。它可以組合命令和循環(huán),并拋出模糊的查找標(biāo)志來(lái)滿足您的查詢。
Copilot for CLI提供了三個(gè)shell命令:??,git?,gh?
(1)?? 是作為任意shell命令的通用goto。它將組成命令和循環(huán),并拋出模糊的find flag來(lái)滿足使用者查詢。
(2)git?專(zhuān)門(mén)用于搜索git調(diào)用。與??相比,它在生成Git命令方面會(huì)更強(qiáng)大,當(dāng)你不需要解釋上下文時(shí),你的查詢會(huì)更簡(jiǎn)潔。
(3)gh?將GitHub CLI命令和查詢界面的強(qiáng)大功能與AI為您生成復(fù)雜標(biāo)志和jq表達(dá)式的便利性相結(jié)合。
7.致力于AI安全責(zé)任原則
ChatGPT致力于確保以負(fù)責(zé)任的方式開(kāi)發(fā)AI系統(tǒng)并以值得人們信任的方式進(jìn)行開(kāi)發(fā)。以下是GitHub Copilot遵守的一些原則:
(1)保持專(zhuān)業(yè)。我們將情緒分析應(yīng)用于建議,以防止GitHub Copilot回復(fù)中出現(xiàn)俚語(yǔ)、誹謗和仇恨言論。
(2)提高代碼質(zhì)量。Copilot不只是通過(guò)模型產(chǎn)生的任何建議,還將每條建議都納入評(píng)估代碼質(zhì)量的過(guò)濾器。雖然我們不能保證每條建議都是完美的,但Copilot 的過(guò)濾器一直在變得更好,并推動(dòng)開(kāi)發(fā)人員開(kāi)發(fā)質(zhì)量更高的代碼。
(3)保護(hù)用戶數(shù)據(jù)。用戶編輯操作、源代碼片段以及存儲(chǔ)庫(kù)和文件路徑的URL都是敏感數(shù)據(jù)。因此,應(yīng)用了多種保護(hù)措施,包括傳輸和靜態(tài)數(shù)據(jù)加密以及對(duì) GitHub 人員訪問(wèn)數(shù)據(jù)的嚴(yán)格要求。
8.如何申請(qǐng)預(yù)覽版?
如何訪問(wèn)GitHub Copilot X引入的即將推出的功能?
目前官網(wǎng)給出的答復(fù)是:可以通過(guò)申請(qǐng)waitlist來(lái)預(yù)覽感興趣的功能。加入一個(gè)waitlist并不能確認(rèn)你可以放訪問(wèn)多個(gè)功能,因此必須按功能分別申請(qǐng)。
官網(wǎng)還特別提示:
一旦您有權(quán)預(yù)覽某項(xiàng)功能,請(qǐng)記住,您正在訪問(wèn)的內(nèi)容被視為測(cè)試版或技術(shù)預(yù)覽,這意味著該功能可能仍有一些問(wèn)題需要解決。
申請(qǐng)鏈接:
有5個(gè)不同的注冊(cè)waitlist。每一個(gè)都需要單獨(dú)注冊(cè)。
[1] Copilot X:https://github.com/github-copilot/chat_waitlist_signup/
[2] Copilot Voice:https://githubnext.com/projects/copilot-voice/
[3] Copilot Docs:https://githubnext.com/projects/copilot-for-docs/
[4] PR Copilot:https://githubnext.com/projects/copilot-for-pull-requests/
[5] Copilot CLI:https://githubnext.com/projects/copilot-cli/
申請(qǐng)條件:
(1)訪問(wèn)GitHub Copilot Voice的技術(shù)預(yù)覽的先決條件:目前,技術(shù)預(yù)覽版面向VS或VSCode用戶。需要有效訂閱GitHub Copilot for Business或GitHub Copilot for Individuals才能訪問(wèn)GitHub Copilot Voice。
(2)訪問(wèn)GitHub Copilot的PR(拉取請(qǐng)求)技術(shù)預(yù)覽:必須是組織管理員或個(gè)人存儲(chǔ)庫(kù)所有者才能申請(qǐng)預(yù)覽拉取請(qǐng)求的GitHub Copilot。
(3)GitHub Copilot for docs的技術(shù)預(yù)覽的先決條件:沒(méi)有。但是,GitHub Copilot for docs目前支持GitHub、React、MDN和Azure的文檔。
(4)訪問(wèn)GitHub Copilot for CLI的技術(shù)預(yù)覽的先決條件:需要有效訂閱GitHub Copilot for Business或GitHub Copilot for Individuals才能訪問(wèn)。
至于什么時(shí)間,多少價(jià)格?Github沒(méi)有給出靠譜的答復(fù)。有網(wǎng)友判斷訂閱費(fèi)會(huì)不菲,等著吧~
9.寫(xiě)在最后
GitHub于2021首次預(yù)覽了Copilot,并于去年廣泛發(fā)布。最初的產(chǎn)品是一個(gè)構(gòu)建編程工具,該工具在軟件開(kāi)發(fā)人員鍵入時(shí)建議使用編程代碼片段。截至去年11月,它吸引了數(shù)十萬(wàn)開(kāi)發(fā)人員。而如今的Copilot,已成為微軟將這些輔助技術(shù)部署一系列產(chǎn)品(從Office軟件到安全程序等)的戰(zhàn)略抓手。
于微軟而言,不得不說(shuō):萬(wàn)能的Copilot,萬(wàn)能的GPT!
參考鏈接:https://github.blog/2023-03-22-github-copilot-x-the-ai-powered-developer-experience/?https://techxplore.com/news/2023-03-microsoft-github-openai-chat-functions.html