如果引用或轉貼,麻煩註明出處與本網誌連結,否則視為侵權。

2023年3月7日

人工智慧程式設計輔助開發工具 - GitHub Copilot介紹

作者: Fred F.M. Wang (FW知識瑣記) 日期: 2023-3-7

       今年3/1日因chatGPT爆紅的openAI公司正式發布了"chatGPT API",提供ChatGPT的引擎與應用程式庫給個人或企業自行開發對話機器人相關應用,加上該公司原有的文字產生與處理,程式碼產生與處理,影像產生與處理等APIs,給有人工智慧應用開發需求的個人或企業更豐富的選擇。

    相較chatGPT API我更感興趣的是OpenAI公司在2021年發布的"程式碼產生與處理"APIs,OpenAI公司將這部分命名為Codex。OpenAI官網提供了Javascript的測試網頁,只要輸入英文(自然語言)就可以幫你產生想要的Javascript程式碼

    除此之外,我找到以Codex為基礎建立的開發工具GitHub Copilot,包含許多IDE的插件,可以在開發軟體的過程中運用AI幫助自己快速產生程式,大幅提高生產力。如果這個工具可以運用到自己的工作上,就太好了,很可惜目前支援的程式語言不包含PHP。

    下面是整理自網路的GitHub Copilot介紹。

簡介

GitHub Copilot是GitHub和OpenAI合作開發的一個人工智慧工具,使用者在使用Visual Studio Code、Microsoft Visual Studio、Vim或JetBrains整合式開發環境時,可以透過GitHub Copilot自動補全代碼。GitHub於2021年6月29日對開公開該軟體。(維基百科)

GitHub Copilot 由 OpenAI Codex 提供支援,OpenAI Codex 是由人工智慧研究實驗室 OpenAI 建立的人工智慧模型。(維基百科)
OpenAI Codex 是 GPT-3(生成型已訓練變換模型 3) 的修改後生產版本,GPT-3 是一種使用深度學習生成類人類文字的語言模型。例如,當給出一個自然語言的程式問題時,Codex能夠產生解法代碼。它也可以用英語描述輸入代碼和在不同程式語言之間翻譯代碼。Codex的GPT-3僅授權給 GitHub 的母公司微軟。(維基百科)
Copilot的OpenAI Codex接受了一系列英語語言、公共 GitHub 儲存庫和其他公開可用原始碼的訓練。這包括來自 5400 萬個公共 GitHub 儲存庫的 159 GB Python 代碼的過濾資料集。(維基百科)

功能與準確度

GitHub Copilot協助程式設計師的功能,包含 :
一 寫上函數名稱自動補全程式碼
二 將註釋轉換成程式碼(Convert comments to code)
三 自動補全重覆的程式碼(Autofill for repetitive code)
四 自動產生測試案例
GitHub 報告稱,Copilot 的自動完成功能大約有一半時間是準確的; 例如,當使用者提供Python 函式頭代碼後,Copilot 在第一次嘗試時有 43% 的時間正確地自動完成了函式體代碼的其餘部分,而在十次嘗試後有 57% 的時間正確地自動完成了函式體代碼的其餘部分。
GitHub 表示,Copilot 的功能能夠幫助程式設計師減省閱讀軟體文件的時間,快速瀏覽不熟悉的編碼框架和語言。

支援的程式語言

GitHub Copilot目前支援的程式語言有C, C++, C#, Go, Java, Javascript, PHP, Python, Ruby, Scala, Typescript

功能介紹

一 寫上函數名稱自動補全程式碼
例如寫一個函數 calculateDaysBetweenDates(date1, date2),你只要函數名稱語意清楚,Copilot會自動填入程式碼。 

二 將註釋轉換成程式碼(Convert comments to code)
例如寫一段註釋,註釋中描述要處理的邏輯,Copilot就會自動產生程式碼。 

三 自動補全重覆的程式碼(Autofill for repetitive code)
例如: 你寫一個常數集合,內容為各種程式語言的註釋符號,你寫了三個程式語言後,Copilot會自動填入其他程式語言。
四 自動產生測試案例
完成一個函示後,可以讓Copilot針對此函示產生測試案例程式。

費用

Copilot個人版: 每月 10 美元,或每年 100 美元。

Copilot企業版 :每個月19美元


安裝與使用



資料來源 
1 維基百科
4.Github - About GitHub Copilot for Individuals
 

沒有留言:

張貼留言

歡迎提供意見, 謝謝 (註 : 留言經過版主審核通過才會發布)