AI自動操作VS Code,自然語言搞掂各種配置,來自阿裡通義智能計算實驗室 | 開源
阿裡通義智能計算實驗室 投稿
量子位 | 公眾號 QbitAI
國產AI已經學會直接操縱編程軟件了!
阿裡通義智能計算實驗室在推出了一款專門針對VSCode的AI助手工具——SmartVscode。
通過自然語言指令,不僅可以讓它幫你編程,還能搞掂各種配置的控制和修改。
目前,該插件和背後的框架均已開源,並上架VS Code擴展市場。
大模型玩轉VS Code
SmartVscode的目標,是讓大模型能夠全面控制VS Code,主要具備兩大核心能力。
用自然語言輕鬆控制VS Code
用戶可以通過自然語言指令,方便地控制和修改VS Code。
例如,打開某個難以查找的頁面,精準快速地調整設置中的某項配置等。
無需記憶複雜的操作步驟,只需告訴SmartVscode你想做什麼,它便會為你完成。
比如用戶輸入想要更改的樣式,SmartVscode會自動地完成查找配置,修改配置等步驟。
或者想要使用Python編寫快速排序代碼,SmartVscode將會幫助我們自動化地完成一系列工作:檢測Python的插件是否安裝,選擇對應的Python解釋器,打開文件書寫快排代碼,執行對應的代碼等步驟。
用VS Code開發應用程序
SmartVscode不僅讓大模型全面控制VS Code,還可以VS Code內部豐富功能開發各類應用程序的能力。
簡而言之,大模型充當「大腦」,VS Code作為「工具」,而SmartVscode則是連接二者的橋樑。
用戶可以通過自然語言的描述,讓大模型借助VS Code這一強大工具來幫助用戶直接實現各種奇思妙想的應用程序。
比如用戶輸入一段關於井字棋遊戲的描述,SmartVscode會自動完成創建文件,編寫代碼,執行程序等步驟。
如何使用SmartVscode插件
這款SmartVscode插件使用起來也十分簡單,只需要三個步驟:
-
在VS Code擴展市場搜索並下載SmartVscode插件;
-
打開VSCode左側邊欄中的SmartVscode對話窗口,並在設置中輸入通義模型或OpenAI模型配置;
-
在對話框中輸入任務描述,等待SmartVscode執行並展示結果。
背後框架一同開源
SmartVscode的背後,是通義智能計算實驗室自主研發的App-Controller框架。
App-Controller是一個基於大模型和智能體(Agent)的創新API編排框架,通過運用大模型的高級推理功能,實現對應用程序API接口的整合與協調。
它允許應用程序響應和執行基於自然語言的指令,極大提升了用戶體驗,並簡化了應用程序與用戶的交互流程。
下圖展示了App-Controller如何增強應用程序的交互能力,左半部分描述了傳統完成任務的問答和執行流程,右半部分展示了引入App-Controller後的完成任務的流程。
傳統流程中,當用戶需要在應用程序中完成某項任務卻不知道該如何操作時,首先需要向大模型諮詢操作步驟,然後根據指引一步步執行對應的操作,最終完成任務;
引入 App-Controller 後的流程中,用戶僅需使用自然語言嚮應用程序輸入需求,便可得到執行結果。
這背後的原理是應用程序在 App-Controller 的協助下借助大模型理解用戶意圖並編排需要執行的命令。
任何應用程序廠商僅需在App上實現通信接口並且向App-Controller提交其支持的 API 清單,框架便能獨立地探索並識別出完成用戶指令所需的最佳API調用順序。
此外,它還搭載了一個高度抽像化、極具彈性的 H湯臣P 交互接口,進一步促進了應用程序的互聯互通。
App-Controller具有如下這些特點:
-
智能API序列編排:智能地將用戶輸入的自然語言命令轉化為可用的應用程序API序列,只需按部就班的執行這些API就能完成用戶的需求。
-
輕鬆集成:開發者只需註冊其應用程序的API清單,App-Controller會自動負責後續的識別和編排工作,無需複雜編碼工作。
-
異步與併發處理:通過採用現代異步技術,App-Controller強化了其對併發請求的支持,確保即使在多用戶或多任務的高負載環境下,應用程序也能保持高效和響應迅速。
-
強大的API交互接口:App-Controller設計了一套用戶友好、穩固的H湯臣P API接口,這意味著與應用程序的交互可以無縫自由,同時確保數據傳輸的高效率和安全性。
-
支持多種大模型:App-Controller 能夠很好地與多種大型語言模型進行集成,這意味著開發者可以根據需求和場景選擇最適合的模型,以實現最優的自然語言理解和處理能力。
-
豐富的文檔資源:App-Controller 提供了詳盡的文檔,其中包括快速入門指南、API參考手冊、最佳實踐案例和常見問題解答,幫助開發者輕鬆上手並充分利用框架的所有功能。
-
任務流的持久化:任務流程可以持久存儲在數據庫中,這項功能方便了任務的監控和管理,使得開發者可以隨時查看任務的狀態和歷史記錄。
-
智能緩存機制:通過先進的緩存技術,App-Controller能夠優化性能和響應速度。它智能地存儲頻繁請求的結果,減少了對外部大模型的調用次數(即將推出)。
-
Token優化:App-Controller的優化算法能夠智能的評估消息的可用性,降低token的使用量,減少因API調用導致的開銷(即將推出)。
從技術模塊上看,App-Controller項目擁有以下五大核心功能:
-
用戶協同操作:用戶可以根據App-Controller生成的任務規劃進行決策和修訂;
-
文檔分析增強:通過整合應用程序說明文檔和可用API文檔,提升任務分析的深度和準確性;
-
智能信息收集:系統能夠迅速搜索並彙總用戶在完成任務時所需的相關信息;
-
智能API序列編排:根據用戶的具體任務要求,快速編排可用的API調用序列,提升工作效率;
-
異步與併發處理模塊:通過採用asyncio框架,App-Controller增強了對併發請求的處理能力,確保在多用戶或多任務的高負載環境中,應用程序依然能夠保持高效響應。
文檔分析增強模塊
文檔分析增強模塊在離線階段發揮關鍵作用,幫助大模型更好地理解和利用應用程序的說明文檔和可用API文檔,提升任務執行的準確性和效率。
App-Controller允許用戶上傳兩類關鍵內容,以輔助大模型完成任務:
-
應用程序說明文檔:詳盡描述了應用程序的結構,基礎定義,以及如何操作應用程序來完成各項任務,支持多種文本格式(如TXT、JSON等),確保信息的多樣性和可讀性。
-
可用API文檔:列出應用程序所有可被App-Controller調用的API,並提供詳細的API功能描述和參數信息,以便大模型精準調用。
為確保大模型能夠準確理解每個API的功能和使用方法,系統規定了API信息的必需字段,包括名稱、詳細描述、參數類型、參數描述及必需參數等。
為提升檢索速度和精度,系統預先將用戶上傳的應用程序的說明文檔和可用API文檔進行分片處理。
每個知識片段通過先進的文本向量模型(如通義文本向量模型等)將文本內容轉化為高維向量,捕捉深層語義信息。
最後基於這些向量構建高效索引的結構,實現快速相似性檢索。
利用高效的向量索引結構,系統能夠在大規模知識庫中快速定位與用戶任務相關的知識片段和可用API文檔,顯著提升信息檢索的響應速度和準確性。
智能信息收集模塊
智能信息收集模塊在用戶輸入具體任務後立即啟動,負責全面蒐集執行任務所需的所有相關信息。該模塊的具體功能和流程如下:
-
需求向量化:首先,用戶輸入的任務需求通過先進的文本向量模型進行處理,將自然語言描述轉化為高維語義向量。這一步驟確保App-Controller能夠理解任務的潛在意圖和細節。
-
知識片段檢索:基於生成的文本向量,App-Controller在預先構建的文檔知識庫中檢索與任務相關的知識內容。這些內容包括功能相關定義、任務操作步驟等信息
-
API探索與確認:系統利用智能代理(Agent),通過關鍵詞生成和最相似API檢索策略,初步識別出與任務相關的API。隨後,系統借助大模型的分析識別能力,通過多輪循環機制,逐步確認和篩選出最合適的API,以確保任務執行的精準性和高效性。
-
應用環境信息查詢:根據任務需求,系統調用相關的應用環境信息蒐集API,查詢並獲取必要的應用環境參數,如系統配置、用戶權限、網絡狀態等。這些信息對於任務的規劃執行至關重要。
-
信息整合與提交:完成所有信息的蒐集後,智能信息收集模塊將整合後的數據提交至智能API序列編排模塊,為後續的任務規劃和執行提供全面的基礎支持。
智能API序列編排模塊
智能API序列編排模塊負責根據收集到的信息,規劃並優化執行任務的API調用順序,確保任務高效、準確地完成。
具體來說,該模塊支持以下功能:
-
計劃製定:App-Cpntroller利用智能代理(Agent)結合智能信息收集模塊提供的知識片段、可用API以及歷史相似任務的執行流程,製定出初步的任務執行計劃。該計劃詳細列出了每一步需要調用的API及其參數配置。
-
用戶評審與反饋:初步計劃生成後,系統將其提交給用戶進行評審。用戶可以根據實際需求提出修改意見,確保計劃的可行性和符合預期目標。
-
計劃迭代優化:根據用戶的反饋意見,系統對計劃進行修訂和優化。這一過程可能涉及多輪迭代,直到用戶對最終計劃表示認可。
-
任務執行:確認後的計劃逐步執行,系統按照預定的API調用順序依次完成各項任務。每一步的執行結果都會實時反饋,確保整個過程的透明性和可控性。
-
反饋調整機制:在任務執行過程中,系統會根據實時反饋信息,動態調整後續的API調用計劃。如果遇到異常情況,系統能夠及時修訂計劃,確保任務順利完成或安全終止。
能力局限與持續改進
儘管AppController在智能控制和多應用擴展方面展現出強大的潛力,但通義智能計算實驗室團隊也指出了當前存在的幾項能力局限:
首先是大模型推理能力的限制。
受限於當前大語言模型的推理能力,SmartVscode在處理某些複雜或細緻的任務時可能會出現錯誤。
這些錯誤包括誤解用戶指令、執行不準確的操作等。
研究團隊正在持續優化模型的訓練和指令解析算法,以減少錯誤發生的頻率,並提升操作的準確性。
第二是模型推理速度。
目前,模型的推理速度有時無法滿足實時操作的需求,導致用戶在執行任務時可能會體驗到一定的延遲。為瞭解決這一問題。
研究團隊正在優化模型的響應速度,通過更高效的算法和更強大的緩存機制,力求在未來版本中實現更快速的推理與響應。
最後,是對VS Code功能的支持還存在局限。
目前,SmartVscode已經基本覆蓋了VS Code的常用基礎功能,但對於一些複雜或高級的功能支持仍處於開發中階段。
通義智能計算實驗室團隊正在積極擴展對VS Code更多複雜功能的支持,確保用戶能夠全面利用SmartVscode提升開發效率。
項目地址
App-Controller:
https://github.com/alibaba/app-controller
Smart-Vscode插件:
https://github.com/alibaba/smart-vscode-extension