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