提示工程是一種如何以清楚指令來引導 AI 的實踐,藉此讓 Copilot 可以更為精準回答正確的問題或完成需求,如解釋專案內容與產生相對應的程式碼。這可以確保程式碼在語法、功能與內容上為正確的。想像一下搭計程車的情境,乘客必須給司機準確的地點與方向引導,否則可能會有繞路或無法精準抵達想要位置情況發生。有了明確指示,乘客可以在最短時間內抵達想要的地點,而無需有額外負擔去進行修正(如自行過馬路到對街、自己再往前走100公尺..)。
1 - 安全的提示傳輸和情境收集
透過 HTTPS 確保自然語言可以安全的傳送至 GitHub Copilot 伺服器。在這個階段,Copilot 也會收集情境詳細資料,包含
2 - 內容篩選
進行內容篩選後再繼續擷取意圖和產生程式碼,其中包含
3 - 情境分析
情境分析將從自然語言註解中擷取意圖,包含從關鍵字、片語與情境線索。而後會將意圖對應至特定的程式碼編輯工作或功能,轉譯成使用者需求成具體的程式碼工作要求。
4 - 程式碼產生
透過對應的意圖而獲知訊息的 Copilot 會完成下列動作:
5 - 使用者互動
您會看到所產生的程式碼以便進行檢閱和互動,並有選項可供您:
6 - 意見反應迴圈起始
Copilot 會根據您的動作起始意見反應迴圈,以達成下列目的:
7 - 針對後續提示重複此程序
此程序會在您提供更多提示時重複進行,Copilot 會持續處理使用者要求、了解其意圖並產生程式碼以作為回應。 一段時間後,Copilot 會運用累積的意見反應和互動資料 (包括情境詳細資料) 以改善其對於使用者意圖的了解,並精進其程式碼產生功能
起初,當使用者與 GitHub Copilot 互動或提供建議時,是在沒有任何具體範例的情況下 (僅依靠其基礎訓練) 來產生程式碼。 例如,假設您要建立一個函式以在攝氏溫動轉華氏溫度。 使用者可以先透過註解撰寫你的需求解,Copilot 可能能夠根據其先前的訓練來為您產生程式碼,而無需任何其他範例。隨後,你可以依據此函式為基底,讓 Copilot 藉由此樣本延伸出不同相似函式,像是華氏溫度轉攝氏溫度,即為單一樣本學習。理所當然,當樣本越來越多,Copilot 能產生的建議經過細緻的微調,會從差距甚遠逐漸取得平衡,這就多樣本學習。