GitHub Copilot 擴充套件:滿足你的一切所需
2024年6月24日,作者:Isidor Nikolic, @isidorn
2017年,谷歌研究員在其開創性論文《Attention is All You Need》中引入了 Transformer 的概念。這類模型能夠像人類集中注意力一樣對資訊進行優先順序排序,它們是當今現代語言模型(例如驅動 GitHub Copilot 的模型)的基礎。
正如 Transformer 對人工智慧具有變革性意義一樣(一語雙關,抱歉),我們相信 GitHub Copilot 擴充套件將最終為開發者兌現人工智慧的全部承諾。
VS Code 是歷史上使用最廣泛的開發者工具之一。其受歡迎程度很大程度上歸功於社群貢獻的龐大擴充套件生態系統。如果你是 VS Code 使用者,你可能隨口就能列出幾個你離不開的擴充套件。想象一下,如果這些擴充套件能夠利用人工智慧和 GitHub Copilot 的力量,將會帶來怎樣的可能性。
當人工智慧瞭解你的特定上下文時,其真正的力量才能被釋放。而 VS Code 就擁有這些知識。擴充套件可以利用 VS Code API 來駕馭這些上下文,並在開發者們已經聚集的 VS Code 中,直接提供最佳、最相關的 AI 驅動的答案和互動。
在這篇文章中,我們將探討賦能擴充套件直接與語言模型以及 GitHub Copilot 提供的聊天體驗進行互動的新 API。我們將瞭解你如何從今天開始使用這些 API 進行構建,並展示一些已經開始利用這些 API 來豐富其擴充套件的早期採用者。
聊天和語言模型 API
在今年的 Build 大會上,我們宣佈了 VS Code 中 GitHub Copilot 的一組新 API:
請務必觀看我們關於使用 GitHub Copilot 增強 VS Code 擴充套件的 Build 大會演講,以全面瞭解這些 API。
你可能最熟悉透過聊天介面使用大語言模型(LLM)。你的擴充套件利用 GitHub Copilot 強大功能的一種方式是構建一個聊天參與者,使用者可以在 VS Code 內部的聊天檢視中與之互動。你可以使用聊天 API建立一個聊天參與者,並使用語言模型 API 來處理自然語言並形成對使用者查詢的響應。透過我們以 @cat
程式碼導師為例的擴充套件指南,可以瞭解更多關於聊天 API 新 API 概念的資訊。
藉助語言模型 API,你現在可以在自己的擴充套件中直接訪問和利用由 GitHub Copilot 貢獻的大語言模型(簡稱 LLM)。只需選擇你想要使用的模型,構建一個提示,然後向選定的模型傳送請求。透過使用 VS Code API,你可以將相關的上下文新增到提示中。例如,可以包含當前檔案的內容或正在使用的技術棧。
語言模型 API 也可以用來增強編輯器所有部分的開發體驗,而不僅僅是聊天檢視。你可以將使用語言模型 API 的操作貢獻到 VS Code 所有可貢獻的介面上,例如編輯器上下文選單。舉個例子,原始碼管理檢視就使用語言模型 API 來允許使用者根據原始碼的變更生成提交資訊。另一個例子是由 Copilot 驅動的重新命名功能,其中語言模型會根據程式碼的上下文提供符號重新命名建議。
在我們的擴充套件指南中瞭解更多關於語言模型 API的資訊。
我們相信,將聊天和語言模型 API 與 VS Code 強大的 API 套件相結合,將會創造出最令人愉悅的使用者體驗。擴充套件作者應該創造性地利用這些工具,超越簡單的問答機器人,在 VS Code 中開發出利用正確使用者上下文的、豐富且整合的互動體驗。使用者欣賞工作流中無縫且強大的互動。這些新的 API 使擴充套件能夠透過將 AI 功能直接整合到 VS Code 中來提高使用者的生產力。
GitHub Apps
另外,你也可以透過建立一個 GitHub App 來擴充套件 GitHub Copilot,該 App 可以在聊天檢視中貢獻一個聊天參與者。GitHub App 由一個服務支援,並且可以跨所有 GitHub Copilot 介面工作,例如 github.com、Visual Studio 或 VS Code。GitHub App 無法完全訪問 VS Code API。要透過 GitHub App 擴充套件 GitHub Copilot,你應該加入Copilot 合作伙伴計劃。
我們在 Microsoft Build 大會上透過 GitHub Apps 宣佈了 GitHub Copilot 擴充套件,並且我們已經在 GitHub Marketplace 上看到了一些出色的擴充套件。
觀看我們關於擴充套件 GitHub Copilot的 Build 大會演講,以觀看實際操作。
VS Code 擴充套件展示
我們很高興能展示 VS Code 擴充套件社群使用語言模型和聊天 API 所構建的成果。到目前為止,我們已經看到超過 100 個擴充套件在各種場景下基於 GitHub Copilot 進行構建。以下是我們認為特別引人注目的一些例子。
Stripe
Stripe 使開發者能夠接受付款並在網上轉移資金。新的 @stripe
聊天參與者將 Stripe 的文件、程式碼示例和最佳實踐知識帶到你的指尖,因此你無需離開 VS Code 即可構建和維護你的 Stripe 整合。
“我們一直在努力讓開發者更容易地整合 Stripe,這就是為什麼我們很高興能用 Stripe 特定的上下文和功能來擴充套件 Copilot。新的可擴充套件性 API 設計精良且易於構建,因此我們能夠非常迅速地取得進展。” - Ian McCrystal (Stripe 開發者 AI 團隊,工程經理)
@stripe
參與者可以幫助你:
- 生成和除錯 Stripe API 程式碼,並將其插入到你的專案中
- 基於 Stripe 文件獲得問題的答案
- 逐步完成構建並最終升級你的 API 整合
所有 Stripe VS Code 擴充套件使用者將在七月中旬前可以使用 @stripe
參與者。
MongoDB
MongoDB 開發者非常喜愛 MongoDB for VS Code 擴充套件,它能夠實現無縫的資料導航、查詢構建、使用 Playground 進行原型設計以及匯出到流行語言。@mongodb
聊天參與者與該擴充套件深度整合,使開發者能夠利用 GitHub Copilot 和該擴充套件的強大組合,在 VS Code 中更快地進行 MongoDB 應用程式開發。
@mongodb
聊天參與者可以:
- 從自然語言生成 MongoDB 查詢
- 從資料庫日誌中提供關於查詢效能和錯誤模式的見解
- 提供資料庫和集合的模式資訊
- 直接在 VS Code 中回答問題,並引用官方文件
如果你有興趣使用 MongoDB 聊天參與者,可以註冊以獲取私有預覽的訪問許可權。
Parallels
Parallels,這款流行的 macOS 虛擬化軟體,最近釋出了一款新的 Parallels Desktop VS Code 擴充套件,以提升 Parallels Desktop 的體驗。他們透過與 GitHub Copilot 整合,進一步改進了它。
“簡單而強大的 API 加上優秀的示例,使我們能夠快速建立一個強大的 Copilot 參與者,否則這將需要相當大的精力和時間。” – Carlos Lapao (Parallels 解決方案架構師)
透過新的 @parallels
聊天參與者,你可以毫不費力地使用自然語言執行大多數虛擬機器操作。例如,你可以說“@parallels 啟動 Windows 11 虛擬機器”,聊天參與者就會代你執行操作。
PostgreSQL
PostgreSQL 是一個非常流行的關係型資料庫平臺,現在你可以透過使用 PostgreSQL 聊天參與者擴充套件直接與它聊天。@pg
聊天參與者將學習你的資料庫模式併為你提供基於資料庫模式的答案。你還可以用它來生成模式、獲取 SQL 查詢的幫助,甚至生成與資料庫互動的程式碼。
後續步驟
我們才剛剛開始。與 VS Code 中所有的產品計劃一樣,我們將隨著時間的推移擴充套件我們的 AI 可擴充套件效能力。我們預計以下功能將在今年晚些時候推出:
- 意圖檢測,以便聊天參與者能被自動呼叫
- GPT-4o 語言模型支援
- 增加模型請求的 token 限制(當前限制為 4K token)
- 在編輯器內聯聊天、終端和筆記本中使用聊天參與者
- 變數解析 API - 允許擴充套件貢獻聊天變數,這些變數從擴充套件的領域提供上下文
- 工具 API - 將自然語言轉換為帶引數的工具呼叫;允許擴充套件註冊可被其他參與者呼叫的工具
今天起對所有人開放!
聊天和語言模型 API 現已在 VS Code Insiders 中可用,並將於七月初在 VS Code Stable 中推出。藉助我們的文件和示例,開始構建強大的 AI 擴充套件非常容易。如果你有任何問題或反饋,可以在我們的程式碼倉庫中提交 issue。
從今天起,你就可以將依賴於語言模型和聊天 API 的擴充套件釋出到 VS Marketplace。真正的問題是:你將創造出怎樣令人難以置信的擴充套件?可能性是無窮的,只有你才能將這些創新想法變為現實。所以,投入到我們出色的擴充套件開發流程中,利用正確的使用者上下文駕馭 AI 的力量,讓你的創造力塑造開發的未來!構建的過程本身就充滿樂趣——去盡情享受吧!
謝謝,
Isidor 和 VS Code 團隊