
最近科技圈是真熱鬧,各大公司相繼發布了自家的人工智能新產品,ChatGPT、GPT4、文心一言、Bard,
微軟更是接二連三地宣布將 GPT-4 應用到 Bing 搜索引擎、Edge 瀏覽器、Office 全家桶中,
3 月 22 日其旗下代碼托管平臺 GitHub 再次發布重磅“炸彈”:GitHub Copilot X,
Copilot X 是對 2021 年發布的 Copilot 進行了升級,接入 GPT-4,并新增了聊天和語音等功能,在 Copilot X 中,你只需“動動嘴”,它就能把你的代碼寫了,順便幫你把測驗用例也寫了,還能給你解釋你看不太懂的代碼片段,更能直接讓它幫你 DeBug,簡直是程式員的貼心小助手,接下來就帶著大家了解一下 Copilot X 并上手體驗一番,
從 Copilot 到 Copilot X
GitHub Copilot
GitHub Copilot 誕生
早在 2021 年 GitHub 和 OpenAI 就合作開發了一個面向程式員的生產力提升工具 Copilot,用戶可以在使用 Visual Studio Code、Microsoft Visual Studio、Vim 或 JetBrains 集成開發環境時通過 Copilot 自動補全代碼,主要面向 Python、JavaScript、TypeScript、Ruby 和 Go 等編程語言,可以協助程式員完成自動補全代碼塊或方法或函式、以及消除重復代碼,甚至根據代碼注釋生成可運行代碼,

GitHub Copilot 底層模型
Copilot 底層的 AI 模型 由 OpenAI Codex 提供支持,OpenAI Codex 是基于 GPT-3 修改后的版本(GPT-3 是一種使用深度學習生成類人類文本的語言模型),接受了一系列英語語言、公共 GitHub 存盤庫和其他公開可用源代碼的訓練,包括來自 5400 萬個公共 GitHub 存盤庫的 159 GB 代碼的資料集,
GitHub Copilot 發布
2021 年 6 月 29 日 GitHub 對外正式發布 GitHub Copilot,很快就吸引了眾多開發者使用,根據 GitHub 的資料,截至上個月,Copilot 已參與到微軟全體云代碼倉庫中的 46%,幫助開發人員將編程速度提高了 55%,

GitHub 的研究還表明,使用 GitHub Copilot 的開發人員中有 90% 表示可以更快地完成任務,其中 73% 的開發人員能夠更好地保持順暢并節省精力,高達 75% 的開發人員感到更有成就感,并且能夠專注于更令人滿意的作業,

GitHub Copilot X
GitHub Copilot X 發布
隨著 OpenAI 的 GPT-4 模型的發布,GitHub 緊接著就發布了新版本的 GitHub Copilot X,Copilot X 的 AI 模型采用的是最新 OpenAI GPT-4,畢竟 GitHub 是微軟的親兒子,GitHub Copilot X 致力于改進開發者體驗,將提供聊天和語音界面,支持拉取請求,回答檔案問題,并通過 GPT-4 實作更個性化的開發者體驗,使用 GitHub Copilot X,它可以解釋代碼的用途,還可以在遇到 bugs 時讓 Copilot X 嘗試去修復它,甚至還可以順帶生成單元測驗,

GitHub Copilot X 愿景
GitHub 官方博客中提到 Copilot X 是 GitHub 對人工智能軟體開發未來的愿景,希望能集成到開發人員作業流程的每個部分中,GitHub Copilot X 的目標是為每個團隊、專案和代碼庫提供個性化的開發體驗,讓開發者更高效地開發軟體,提高作業滿意度,

Copilot X 核心功能體驗
Copilot X 中的 X 代表什么
GitHub 官網中有提到 GitHub Copilot X 中的 X 代表什么?其實“X”代表一個占位符,表示希望 GitHub Copilot 可用的位置,以及期望它能夠做什么(例如“Copilot for pull”、“Copilot for security”),它將產品從單一體驗、代碼完成擴展到跨開發人員作業流程的 X 體驗,此外,“X”表示我們打算對開發人員成就產生的影響程度,
這次 GitHub 推出的 Copilot X 包括如下功能:
-
Copilot Chat 聊天功能:在編輯器中集成與 VS Code 和 Visual Studio 的聊天界面,幫助開發者深入分析代碼、生成單元測驗和修復 bug,讓你可以邊寫代碼邊聊天,
-
Copilot Voice 語音功能:允許開發者通過口頭指令進行自然語言陳述意圖,然后讓 Copilot Voice 完成生成代碼片段的繁重作業,
-
Copilot For Pull Requests 支持 PR 功能:幫助開發者更好的撰寫 PR 描述,并幫助團隊更快地審查和合并 PR,
-
Copilot CLI 終端 CLI 工具:將自然語言翻譯成終端命令,
-
Copilot For Docs 檔案工具:能夠回答有關軟體檔案的問題,使開發人員免于搜索大量檔案,初步支持 React、Azure Docs 和 Mozilla Developer Network (MDN) 檔案查詢,
Copilot Chat
其實可以這樣簡單的理解 Copilot Chat = Copilot + ChatGPT,Copilot Chat 就是給 Copilot 加上了聊天對話功能并嵌入到 IDE 中,Copilot Chat 專注于開發人員場景,并與 VS Code 和 Visual Studio 原生集成,它可以識別開發人員輸入了哪些代碼,顯示了哪些錯誤訊息,并將其嵌入到 IDE 中,開發人員可以深入分析和解釋代碼塊的用途,生成單元測驗,并對 bug 給出修復建議,
相比舊版的 Copilot,新版的 Copilot Chat 也能識別開發者輸入的代碼,比如下面示例中,選中一行代碼,讓 Copilot Chat 解釋代碼的作用:
我們實際上手來一些接地氣的例子:
-
首先我們讓 GitHub Copilot 根據代碼注釋幫我們生成一個程式員面試必備的接雨水的代碼,




-
更厲害的是它還可以幫你進行不同編程語言間的翻譯轉換,


當然,Copilot 的能力還遠不如此,還有更多的功能等待你去探索,希望它能成為大家作業中得力的助手,
Copilot Voice
顧名思義,是的就是動動嘴皮子,讓 Copilot 幫你來寫代碼,Write code without the keyboard,
除了撰寫代碼,Copilot Voice 還可以進行更多的操作:代碼跳轉、控制 IDE、代碼總結,

Copilot For Pull Requests
維護過開源專案,或者用 Git 進行團隊協作的同學應該知道,規范化提交 Pull Request(PR) 對于專案開發者來說,到底有多重要,一個好的 pull request 描述能讓代碼審查者一目了然,可以幫助審閱者快速了解你的代碼變動情況,減少專案合并出錯的可能性,并提升溝通效率,并可以幫助你的團隊的其他成員跟上進度,
因此為了滿足開發人員的需求,Copilot 構建了一項功能,允許開發人員在他們的拉取請求描述中插入標記標簽,保存描述后,Copilot(由 OpenAI 的新 GPT-4 模型提供支持)會根據標記動態提取與分析代碼的變更資訊,自動生成描述,然后開發人員可以查看或修改建議的描述,
支持的標記,主要有以下幾種:
-
copilot:summary生成一段摘要總結, -
copilot:walkthrough詳細的更改串列,包括指向相關代碼片段的鏈接, -
copilot:poem寫一首詩來描述本次改動, -
copilot:all自動生成以上所有內容,
隨著后續產品的更新迭代,未來,Copilot 還會新增 Gentest 和 Ghost Text 的兩大功能,
-
Gentest:當 Copilot 發現提交的 Pull Request 缺少足夠的測驗時,會自動提醒開發者,并根據專案需求建議可編輯、接受或拒絕的潛在測驗,對于專案所有者來說,這個功能還可以幫助他們去制定關于測驗的策略,同時支持開發者遵循這些策略,
-
Ghost Text:當開發者創建 Pull Request 時,Copilot 會動態地獲取代碼更改的相關資訊,并自動給出建議,
此外,GitHub 正在進行的其他探索和實驗包括:
-
用 AI 解決問題:可以自動描述如何解決問題,甚至自動建議需要進行的更改,
如下,在提交了轉移到 PyTorch 的問題后,新功能可以提供生成代碼建議,并發起新的 Pull Request,
-
用 AI 審查 PR:由于大量的開發人員將時間花費在代碼審查,以及為代碼審查準備 PR 上,這一功能就可以減少審查花費的周期,
估計再過不久,AI 就能幫你自動調整代碼、完善 PR、修復 Bug 了,
Copilot CLI
影視劇中經常有黑客在電腦螢屏黑視窗前噼里啪啦的不停地敲著一大串的命令,確實非常的酷炫,而在實際中,開發人員真的很難記住那么多復雜的命令,不過不用怕,Copilot CLI 它來了,它帶著這 3 個命令來了:?? 、git? 和 gh?
-
??可以作為任意 shell 命令的通用 goto,在該命令后面輸入相關描述,Copilot 便會列出最適用該描述的具體命令,
比如,你不清楚如何列出所有 JavaScript 檔案,只需要輸入:
> ?? list js file
Copilot CLI 便會提供可參考的命令以及描述,如果不滿意,還能進一步更改描述,確定之后,在終端選中 Run this command,然后按下回車即可,

-
git?用于專門搜索以及呼叫git,
相比??, 它在生成 Git 命令方面要強大許多,如果你明確要用的是 Git 命令,那可以優先選擇使用這個,

-
gh?結合了 GitHub CLI 命令的靈活性與查詢界面的便捷性,讓搜索變得更加快捷、資訊展示更為清晰,

Copilot For Docs
很多開發人員在閱讀官方技術檔案時一定都遇到過這些問題:檔案內容過于基礎、過于粗略或者相關資訊被拆分到多個頁面上,其中充滿了不相關的細節,
Copilot for Docs 就是用來幫助開發者解決上述這些問題的,Copilot for docs 通過定制的摘要為問題呈現最相關的內容,有助于將這些點聯系起來,從而避免了開發人員搜索大量檔案,更快地為開發人員提供所需資訊,包括開發者關于他們正在使用的語言、框架和技術的問題,
GitHub 稱,其將從 React、Azure Docs 和 MDN 的檔案開始,以便能夠與這些專案的開發者和用戶一起快速學習和迭代,GitHub 正在使用 AI 掃描這些開源存盤庫,以幫助開發人員獲得答案,因此它的聊天生成的代碼內容會比 GPT-4 所基于的訓練資料集更新一些,

比較厲害的是 Copilot for Docs 的個性化內容,它可以根據用戶的不同編程水平,對該檔案的了解程度,以及想要查找的內容,輸出不同的答案,

而且開發人員還可以直接從 GitHub repo 上獲取最新內容檔保持同步,并在現有的 GitHub 權限基礎上提供只有自己內部團隊可以看到的資訊,可以輕松回答有關團隊私有內容的問題,

Copilot X 對軟體開發的影響及程式員如何應對
看了以上那么多 Copilot X 強大的功能,程式員也得大呼:”家里水晶被偷了!“
其實從 ChatGPT 出圈以來,大家對 AI 是否會取代人類作業的討論已經非常多了,這里就不再贅述了,僅僅簡單談一談 Copilot X 對軟體開發行業影響的看法以及程式員該如何應對這場危機:
-
Copilot X 對軟體開發行業影響
-
面向智能軟體編程成為趨勢,正如電腦成為都市白領打工人的標配,Copilot X 之類的編程輔助工具也將成為越來越多軟體開發人員稱心如意的越來越離不開的助手,讓自己的作業更加高效和順暢,
-
軟體開發者的核心作業不再是編碼,簡單重復的占用大多時間的編碼不再是開發人員的主要作業,理解和解決問題、設計和架構系統、優化性能和安全性等會變成程式員的更重要的作業,
-
軟體開發的門檻更低,Copilot X 可以讓更多對軟體開發感興趣的人更加輕松的參與到軟體開發作業中,同時,它提高了編程效率和質量,使我們可以在更短的時間內完成更多的作業,它還能幫助我們更好地協作和溝通,
-
超大規模的軟體專案管理成為可能,Copilot X 的意義不僅僅局限于單個開發者,這個突破性的工具可以通過簡化作業流程、減少錯誤和實作更快的開發周期來重塑整個行業,
展望未來,AI 編程助手在軟體開發領域的前景是無限廣闊的,它不僅可以持續升級,克服更多挑戰,還可以與其他 AI 技術結合,拓展更多的應用場景,
-
程式員如何應對 Copilot X 帶來的職業危機感
通過前面的文章我們已經體驗到了 GitHub Copilot X 的強大并能預見到它將對未來的軟體開發行業產生巨大的影響,那么作為普通的程式員,我們該如何提升那方面的能力才能應對這場職業危機呢?
-
首先,我們要接受事實,GitHub Copilot X 等 AI 輔助編程產品是不可避免的,我們無法阻止技術的發展,作為程式員我們應該接受這個事實,并積極地去擁抱變化,去接受它去使學習它使用它,并讓它提高你的生成效率,
-
其次,我們需要提升自身能力,我們需要知道程式員的核心競爭力究竟是什么?是每天提交幾百行、上千行代碼嗎?答案肯定不是,現在和未來的很長一段時間內,程式員的作業模式會成為按照業務需求進行設計拆解并輸入提示詞,讓 GitHub Copilot X 之類的 AI 幫你生成代碼,然后由你進行驗證和修復,讓代碼能夠正常運行,所以程式員首先要提升的是業務理解、需求拆分、架構設計等方面的能力,
-
最后,我們需要學會與 AI 合作,讓程式員+AI 形成 1+1>2 的效果,比如我們要學會當然還有撰寫提示詞的能力!有人可能會說,撰寫提示詞不就是會打字就行嗎?非也,一個好的提示詞,能讓 AI 快速準確的生成你想要的代碼,比如你要在提示詞中定義好需要完成的功能、對任務進行拆分、確定輸入輸出、表達準確避免歧義等等,所以提示詞的撰寫本身就會變得十分的重要,未來程式員的第一課可能并不是學*** 編程語言,而是如何撰寫提示詞,
總之,GitHub Copilot X 的出現給程式員帶來了一定的沖擊,但是我們應該以積極的態度去面對它,提高自身能力,與它合作,從而更好地適應技術的發展,
附:GitHub Copilot X 申請使用教程
說了這么多 GitHub Copilot X 的新 feature,是不是有點迫不及待想要上手試一試呢?目前 GitHub Copilot X 剛剛推出不久,想要搶先體驗,需申請加入等待名單佇列中,成功排上隊之后就可以暢玩了,
具體的步驟如下:
-
注冊 GitHub 賬號
https://github.com/signup
-
申請試用
Copilot Chat: https://github.com/github-copilot/chat_waitlist_signup/
Copilot Voice: https://githubnext.com/projects/copilot-voice/
Copilot for Docs: https://githubnext.com/projects/copilot-for-docs/
Copilot for PRs: https://githubnext.com/projects/copilot-for-pull-requests/
Copilot CLI: https://githubnext.com/projects/copilot-cli/
-
安裝代碼編輯器
如 Visual Studio Code、Microsoft Visual Studio、JetBrains 等
-
安裝 GitHub Copilot 插件
以 Visual Studio Code 為例(下載 VS Code https://code.visualstudio.com/ )
進入 VS Code 的 Extensions 面板(快捷鍵 Ctrl+Shift+X),在搜索框中輸入“GitHub Copilot”并回車,在搜索結果中找到“GitHub Copilot”插件并選擇相應的插件點擊安裝,

-
登錄 GitHub 賬號:安裝完成后,單擊 VS Code 底部狀態欄中的 GitHub Copilot 圖示,進入 GitHub Copilot 面板,首次使用需要登錄 GitHub 賬戶,可以選擇使用 GitHub 賬戶登錄或者輸入 Personal Access Token 登錄,
-
使用 GitHub Copilot 插件:在編輯器中輸入關鍵字或者陳述句時,GitHub Copilot 會自動出現一個提示框,用戶可以選擇其中的建議代碼或者繼續輸入以獲得更多的建議,用戶可以通過快捷鍵或者命令面板啟動 GitHub Copilot,具體方法可以查看編輯器插件的幫助檔案,
-
確認和編輯代碼:GitHub Copilot 生成的代碼不一定完全符合用戶的需求,因此用戶需要對生成的代碼進行確認和編輯,用戶可以通過按下回車鍵或者 Tab 鍵來接受或者拒絕 GitHub Copilot 的建議代碼,也可以手動編輯代碼以符合自己的需求,
-
Copilot 也提供了一些快捷鍵,可以很方便地使用,
-
接受建議: Tab -
拒絕建議: Esc -
打開 Copilot: Ctrl + Enter(會打開一個單獨的面板,展示 10 個建議) -
下一條建議: Alt/Option + ] -
上一條建議: Alt/Option + [ -
觸發行內 Copilot: Alt/Option + \(Coplit 還沒有給出建議或者建議被拒絕了,希望手工觸發它提供建議) -
一些使用技巧:
Copilot X 是一款基于人工智能技術的代碼生成工具,它可以為程式員提供更高效的撰寫代碼的方式,下面是一些使用技巧:
-
確定背景關系:在使用 Copilot X 之前,需要確定當前需要撰寫的代碼的背景關系,包括編程語言、函式、類等等,這樣可以幫助 Copilot X 更好地理解你的需求,從而生成更準確的代碼,
-
使用良好的注釋:在撰寫代碼時,建議使用良好的注釋,這可以幫助 Copilot X 更好地理解你的代碼,從而生成更準確的代碼,
-
給出明確的指令:在使用 Copilot X 時,需要給出明確的指令,比如輸入函式名、變數名等等,這樣可以幫助 Copilot X 更好地理解你的需求,從而生成更準確的代碼,
-
不斷嘗試:Copilot X 是一款基于人工智能技術的工具,它的生成結果可能并不總是準確的,因此,我們需要不斷嘗試,比較不同的生成結果,從而找到最優的方案,
-
結合自己的思考:雖然 Copilot X 可以生成大部分代碼,但是在某些情況下,我們仍然需要自己思考,比如演算法的實作、架構設計等等,因此,在使用 Copilot X 時,需要結合自己的思考,從而更好地完成編碼任務,總之,Copilot X 是一款非常有用的代碼生成工具,但是它并不能完全取代程式員的作業,因此,在使用它時,需要結合自己的思考和經驗,從而更好地完成編碼任務
-
Http 代理
有些用戶可能會遇到 Copilot 不作業的問題,原因是 Copilot 無法訪問互聯網或 Github api,你可以在輸出面板上看到以下錯誤資訊:GitHub Copilot could not connect to server. Extension activation failed: "connect ETIMEDOUT xxx.xxx.xxx:443",
在這種情況下,你需要設定 http 代理,
首先,獲取你的 http 代理資訊,你可以向你的網路管理員詢問代理地址和埠,或者如果你使用代理軟體,你可以在代理軟體設定中找到代理地址和埠,
下面是一個使用代理軟體"ClashX"的例子,你可以在"設定"標簽中找到代理地址和埠,代理地址是 "127.0.0.1:1080",

然后,打開 VSCode 的設定,搜索http.proxy,并設定代理地址和埠,

設定完成后,重新啟動 VSCode,Copilot 應該可以正常作業,
作者:nicky
本文來自博客園,作者:古道輕風,轉載請注明原文鏈接:https://www.cnblogs.com/88223100/p/GitHub-Heavy-Programming-Assistant-Copilot-X-Hands-on-Experience.html
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/548367.html
標籤:其他
