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