從設(shè)計(jì)、編碼到測試、部署,甚至是運(yùn)維……軟件開發(fā)的整個流程,可以通通交給AI了! 一款覆蓋軟件開發(fā)全生命周期的端到端AI智能助手,讓分散的軟件開發(fā)操作變得集成化、智能化。 這款A(yù)I助手專門針對開發(fā)領(lǐng)域設(shè)計(jì),避免了通用大模型不可靠、信息不及時、領(lǐng)域任務(wù)不完善等問題。 這個AI助手名為DevOps-ChatBot,由螞蟻Codefuse項(xiàng)目組研發(fā),安裝過程簡單快速,還可通過docker完成一鍵部署。 DevOps-ChatBot具體都有哪些功能,表現(xiàn)又是如何,請看作者投稿。 解決通用大模型缺陷隨著ChatGPT等通用大模型以及各類垂直領(lǐng)域大模型的出現(xiàn),各個領(lǐng)域的產(chǎn)品交互模式、用戶信息獲取模式都在逐步發(fā)生改變。 但DevOps對于事實(shí)的準(zhǔn)確性、信息的及時性、問題的復(fù)雜性、數(shù)據(jù)的安全性要求都比較高,通用大模型生成內(nèi)容不可靠、信息不及時、領(lǐng)域任務(wù)不完善的問題始終存在。 于是,Codefuse團(tuán)隊(duì)發(fā)起并開源DevOps-ChatBot端到端AI智能助手,專為軟件開發(fā)的全生命周期而設(shè)計(jì):
Codefuse團(tuán)隊(duì)期望通過本項(xiàng)目逐步改變原有的開發(fā)運(yùn)維習(xí)慣,從各處資料查詢、獨(dú)立分散平臺操作的傳統(tǒng)開發(fā)運(yùn)維模式轉(zhuǎn)變到大模型問答的智能化開發(fā)運(yùn)維模式,讓“天下沒有難做的Coder”。 五大核心模塊DevOps-ChatBot項(xiàng)目整體架構(gòu)簡圖如下: 具體來說,它包含了以下9個功能模塊:
除了上述功能模塊的組裝協(xié)同,DevOps-ChatBot項(xiàng)目還具有以下核心差異技術(shù)和功能點(diǎn):
智能調(diào)度核心在處理復(fù)雜問題時,我們可以通過ReAct過程來選擇、調(diào)用和執(zhí)行工具反饋,實(shí)現(xiàn)多輪工具使用和多步驟執(zhí)行。 但對于更復(fù)雜的場景,例如復(fù)雜代碼的開發(fā),單一LLM Agent難以勝任。 研究團(tuán)隊(duì)希望構(gòu)建一個可擴(kuò)展、易于使用的多智能體(Multi-Agent)框架,通過簡易的配置即可輔助完成日常辦公、數(shù)據(jù)分析、開發(fā)運(yùn)維等各種通用任務(wù)。 本項(xiàng)目的多智能體框架汲取兼容了多個框架的優(yōu)秀設(shè)計(jì),比如metaGPT中的消息池(message pool)、autogen中的代理選擇器(agent selector)等。 DevOps-ChatBot中多智能體框架的核心要素包括了以下6個方面:
實(shí)際操作過程中,用戶可通過組合多個智能體來實(shí)現(xiàn)一個完整且復(fù)雜的項(xiàng)目上線場景(Dev Phase),如需求鏈(CEO)、產(chǎn)品論證鏈(CPO、CFO、CTO)、工程組鏈(選擇者、開發(fā)者1~N)、部署鏈(開發(fā)者、部署者)等。 代碼整庫分析現(xiàn)階段大模型主要用于代碼生成、修復(fù)以及組件理解的任務(wù),面臨以下挑戰(zhàn):
研究團(tuán)隊(duì)歸納了開發(fā)中遇到的主要問題,從下圖中可以看到在開發(fā)的過程中,現(xiàn)有代碼庫、依賴包的理解,代碼檢索、元信息查詢等占用的時間更長: 針對如上問題,團(tuán)隊(duì)通過程序分析獲取代碼的邏輯結(jié)構(gòu)并存入知識圖譜,然后通過RAG迭代查詢增強(qiáng)獲取必要的上下文信息,又結(jié)合多智能體角色扮演,實(shí)現(xiàn)了大模型和代碼庫的有機(jī)結(jié)合。 這一部分的整體框架如下:
同時,團(tuán)隊(duì)也在探索通過多智能體的模式,迭代搜索代碼倉庫獲取上下文信息,同時由其他智能體來負(fù)責(zé)階段性提煉總結(jié)信息以及結(jié)果生成等其他任務(wù)。 文檔分析增強(qiáng)大模型在涉及到專業(yè)領(lǐng)域知識問答(比如醫(yī)療、通訊)、私有知識問答(私域數(shù)據(jù)),容易出現(xiàn)幻覺導(dǎo)致生成的答案不可信。 最直觀的解決方案是將特定/私有領(lǐng)域的數(shù)據(jù)進(jìn)行加訓(xùn)來增強(qiáng)模型知識,但訓(xùn)練大模型的開銷巨大。 于是研究團(tuán)隊(duì)選擇知識庫外掛的手段和檢索增強(qiáng)生成的方式,將與問題相關(guān)的數(shù)據(jù)從知識庫中檢索出來,作為額外知識輸入到大模型中,保障結(jié)果的可靠性&實(shí)時性,同時避免訓(xùn)練開銷。 如何更精準(zhǔn)的搜索檢索,是本模塊核心要解決的問題,為此研究團(tuán)隊(duì)提出了這樣的架構(gòu): 整個DocSearch含三種檢索鏈路,用戶可自行選擇檢索鏈路,也可以三個都選擇以獲取不同的結(jié)果。
知識庫構(gòu)建與DevOps知識庫如前文介紹,通過知識庫外掛和增強(qiáng)檢索生成的手段可以很好的解決專有/私域知識問答的問題,接下來的核心問題是如何更好的構(gòu)建知識庫。 構(gòu)建知識庫時常常會面對以下問題:
基于此,研究團(tuán)隊(duì)提出了這樣的整體架構(gòu):
研究團(tuán)隊(duì)接下來會注重于DevOps領(lǐng)域數(shù)據(jù)的收集和構(gòu)建,同時也期望為這條標(biāo)準(zhǔn)化的數(shù)據(jù)獲取、清洗能力&智能化處理流程為更多的私有知識庫構(gòu)建提供幫助。 平臺與模型兼容隨著大型語言模型(LLM)的出現(xiàn),我們見證了問題解決方式的變革,比如智能客服系統(tǒng)從依賴小規(guī)模模型微調(diào)和固定規(guī)則轉(zhuǎn)向更為靈活的智能體交互。 研究團(tuán)隊(duì)期望和周邊開源的DevOps平臺打通兼容,通過API的注冊、管理和執(zhí)行能夠?qū)崿F(xiàn)對話式交互驅(qū)動完成各種特定任務(wù)(數(shù)據(jù)查詢、容器操作等)。 為了能夠讓本項(xiàng)目快速兼容相關(guān)開源組件和運(yùn)維平臺,我們通過python注冊模板BaseToolModel類,編寫Tool_name、Tool_description、ToolInputArgs、ToolOutputArgs、run等相關(guān)屬性和方法即可實(shí)現(xiàn)工具的快速接入:
目前已封裝工具清單如下:k-sgima異常檢測、代碼檢索、文檔檢索、duckduckgo搜索、百度ocr識別、股票信息查詢、天氣查詢、時區(qū)查詢。 未來展望目前DevOps框架還處于初期,還有很多不完善的地方,接下來研究團(tuán)隊(duì)計(jì)劃在如下方面做核心演進(jìn):
功能展示在這五大核心模塊的驅(qū)動下,DevOps-ChatBot具有如下這些功能。 首先是文本知識庫管理:
除了文本知識庫,DevOps-ChatBot還支持知識圖譜、代碼知識庫文件的上傳和管理。 此外,研發(fā)團(tuán)隊(duì)還封裝了一些Agent場景,諸如chatPhase、docChatPhase、searchChatPhase、codeChatPhase等,可支撐知識庫問答、代碼問答、工具調(diào)用、代碼執(zhí)行等功能。 除了應(yīng)用在DevOps當(dāng)中,DevOps-ChatBot在其他領(lǐng)域也是適用的! 在多智能體的調(diào)度下,DevOps-ChatBot可以延伸出很多有意思的玩法。 以下玩法可以通過本項(xiàng)目的模塊組裝構(gòu)建完成: 代碼解釋器(Code Interpreter)只要上傳一個數(shù)據(jù)文件,DevOps-ChatBot就會自動進(jìn)行數(shù)據(jù)分析: 工具使用例如:查詢某個服務(wù)器的基本時序,傳入到監(jiān)控工具中,并進(jìn)行分析 智能股票分析(工具+代碼解釋器)用戶通過簡單的自然語言查詢,就可以獲取特定股票的詳細(xì)信息,包括歷史股價圖表、市場表現(xiàn)和可能的市場走向。 生成測試用例DevOps-ChatBot可以針對代碼庫中的某個方法生成測試用例。 玩家拯救者(知識庫問答)除了這些應(yīng)用場景,DevOps-ChatBot還可以回答與具體的網(wǎng)絡(luò)游戲相關(guān)的問題。包含英雄信息、登場時間、所屬城邦等。 例如:英雄聯(lián)盟的英雄關(guān)系知識圖譜 One More ThingCodefuse團(tuán)隊(duì)發(fā)布了一個針對DevOps領(lǐng)域大模型相關(guān)的開源項(xiàng)目DevOpsGPT,主要分為三個模塊,本文中的DevOps-ChatBot就是其中之一。 除此之外,還有DevOps-Model、DevOps-ChatBot兩個模塊,分別為DevOps領(lǐng)域?qū)俅竽P秃虳evOps領(lǐng)域智能助手。 團(tuán)隊(duì)的目標(biāo)是在DevOps領(lǐng)域,包含開發(fā)、測試、運(yùn)維、監(jiān)控等場景,真正地結(jié)合大模型來提升效率、成本節(jié)約。 團(tuán)隊(duì)期望相關(guān)從業(yè)者一起貢獻(xiàn)自己的才智,來讓“天下沒有難做的coder”,也會定期分享對于LLM4DevOps領(lǐng)域的經(jīng)驗(yàn)&嘗試。 — 完 — |
|