一个智能助手搞定软件开拓全流程从设计到运维一切交给AI_代码_模子
量子位 | "大众年夜众号 QbitAI
从设计、编码到测试、支配,乃至是运维……软件开拓的全体流程,可以通通交给AI了!
一款覆盖软件开拓全生命周期的端到端AI智能助手,让分散的软件开拓操作变得集成化、智能化。
这款AI助手专门针对开拓领域设计,避免了通用大模型不可靠、信息不及时、领域任务不完善等问题。
这个AI助手名为DevOps-ChatBot,由蚂蚁Codefuse项目组研发,安装过程大略快速,还可通过docker完成一键支配。
DevOps-ChatBot详细都有哪些功能,表现又是如何,请看作者投稿。
办理通用大模型毛病随着ChatGPT等通用大模型以及各种垂直领域大模型的涌现,各个领域的产品交互模式、用户信息获取模式都在逐步发生改变。
但DevOps对付事实的准确性、信息的及时性、问题的繁芜性、数据的安全性哀求都比较高,通用大模型天生内容不可靠、信息不及时、领域任务不完善的问题始终存在。
于是,Codefuse团队发起并开源DevOps-ChatBot端到端AI智能助手,专为软件开拓的全生命周期而设计:
通过DevOps垂类知识库 + 知识图谱增强 + SandBox实行环境等技能来保障天生内容的准确性、及时性并让用户交互修正代码编译实行,确保答案的可靠性;通过静态剖析技能 + RAG检索增强天生等技能来让大模型感知高下文,实当代码库级别的组件理解、仓库项目级的代码文件修正、天生,不单单只是函数片段级的代码补齐;通过完善链路级的Multi-Agent调度设计、协同知识库、代码库、工具库、沙盒环境,来让大模型可以实现DevOps领域繁芜多步骤的任务;通过DevOps领域专属的领域模型和评测数据构建支持私有化支配来保障数据的安全性,以及特界说务的高可用性。Codefuse团队期望通过本项目逐步改变原有的开拓运维习气,从各处资料查询、独立分散平台操作的传统开拓运维模式转变到大模型问答的智能化开拓运维模式,让“天下没有难做的Coder”。
五大核心模块DevOps-ChatBot项目整体架构简图如下:
详细来说,它包含了以下9个功能模块:
Multi Source Web Crawl:网络爬虫,供应对指定url爬取干系信息的能力️ Data Process:数据处理模块,供应文档加载器、数据洗濯、文本切分的功能,处理和整合多源格式的数据文档️ Text Embedding Index:文档剖析核心,通过文档上传即可实现文档检索 Vector Database & Graph Database:向量数据库和图数据库,用于数据管理 Multi-Agent Schedule Core:多智能体调度核心,通过大略单纯配置即可构建所需交互智能体 Prompt Control:Prompt掌握与管理模块,定义Agent的高下文管理 SandBox:沙盒模块,供应代码编译实行和动作实行的环境 LLM:智能体大脑,可支持多种开源模型和LLM接口范围️ API Management:API管理组件,快速兼容干系开源组件和运维平台除了上述功能模块的组装协同,DevOps-ChatBot项目还具有以下核心差异技能和功能点:
智能调度核心:体系链路完善的调度核心、多模式一键配置代码整库剖析:仓库级代码理解、项目文件级代码编写天生文档剖析增强:文档知识库结合知识图谱的检索、推理增强垂类专属知识:DevOps专属知识库、垂类知识库自助一键构建垂类模型兼容:DevOps领域小模型、DevOps周边平台兼容智能调度核心
在处理繁芜问题时,我们可以通过ReAct过程来选择、调用和实行工具反馈,实现多轮工具利用和多步骤实行。
但对付更繁芜的场景,例如繁芜代码的开拓,单一LLM Agent难以胜任。
研究团队希望构建一个可扩展、易于利用的多智能体(Multi-Agent)框架,通过大略单纯的配置即可赞助完成日常办公、数据剖析、开拓运维等各种通用任务。
本项目的多智能体框架汲取兼容了多个框架的精良设计,比如metaGPT中的池(message pool)、autogen中的代理选择器(agent selector)等。
DevOps-ChatBot中多智能体框架的核心要素包括了以下6个方面:
智能体信息交互(Agent Communication):Agent之间有效的信息互换对付高下文管理以及问答效率提升至关主要。包含两种通信模式:简洁直不雅观易于理解的链式对话、借鉴metaGPT的池框架;标准操作过程(Standard Operation Process,SOP):定义智能体的输入和输出范围和定义SOP标识,如Tool、Planning、Coding、Answering、finished等,对LLM的天生结果进行标准化解析和处理;操持与实行器(Plan and Executor):增加大模型的工具利用、智能体调度、代码的天生;长-短期影象管理(Long-short term memory Management):为了仿照人类团队协作过程,增加一个专门卖力内容总结(类似于会议助理)的Agent,对长期影象总结并提取更有效的信息进行通报;人-智能体交互(Human-agent interaction):面对繁芜场景,由人类参与智能体交互过程并供应反馈,使大模型能准确理解人类的意图,从而更有效地完成任务;Prompt掌握与管理(Prompt Control and Management):卖力折衷和管理智能体间的Prompt交互,提升系统的繁芜性掌握和交互效率。输入和输出采取Markdown构造化设计,实现清晰规范的结果展示,方便阅读和解析。实际操作过程中,用户可通过组合多个智能体来实现一个完全且繁芜的项目上线场景(Dev Phase),如需求链(CEO)、产品论证链(CPO、CFO、CTO)、工程组链(选择者、开拓者1~N)、支配链(开拓者、支配者)等。
代码整库剖析
现阶段大模型紧张用于代码天生、修复以及组件理解的任务,面临以下寻衅:
代码演习数据存在滞后性,频繁更新的开源/私有仓库存在数据信息的不及时。大模型无法感知代码高下文和代码库依赖构造。研究团队归纳了开拓中碰着的紧张问题,从下图中可以看到在开拓的过程中,现有代码库、依赖包的理解,代码检索、元信息查询等占用的韶光更长:
针对如上问题,团队通过程序剖析获取代码的逻辑构造并存入知识图谱,然后通过RAG迭代查询增强获取必要的高下文信息,又结合多智能体角色扮演,实现了大模型和代码库的有机结合。
这一部分的整体框架如下:
代码构造剖析:针对代码原文进行洗濯和去重来保留住有代价的代码部分。然后通过静态剖析的手段,从代码库中挖掘到代码之间的依赖图,同时借助于大模型的理解能力来针对代码进行解读,在天生的构造化信息图谱中作为主要的补充。代码检索天生:供应三种不同的检索模式。Cypher检索天生紧张面向用户对付代码库构造的理解(比如查询类的数量等需求),图谱检索紧张面向用户的问题含有详细的类和方法名的时候来检索代码。
同时,团队也在探索通过多智能体的模式,迭代搜索代码仓库获取高下文信息,同时由其他智能体来卖力阶段性提炼总结信息以及结果天生等其他任务。
文档剖析增强
大模型在涉及到专业领域知识问答(比如医疗、通讯)、私有知识问答(私域数据),随意马虎涌现幻觉导致天生的答案不可信。
最直不雅观的办理方案是将特定/私有领域的数据进行加训来增强模型知识,但演习大模型的开销巨大。
于是研究团队选择知识库外挂的手段和检索增强天生的办法,将与问题干系的数据从知识库中检索出来,作为额外知识输入到大模型中,保障结果的可靠性&实时性,同时避免演习开销。
如何更精准的搜索检索,是本模块核心要办理的问题,为此研究团队提出了这样的架构:
全体DocSearch含三种检索链路,用户可自行选择检索链路,也可以三个都选择以获取不同的结果。
传统的文档向量数据库查询:文档向量数据库是当前最主流的知识库构建方法。利用Text Embedding 模型对文档进行向量化并在向量数据库中存储,结合高下文学习的成果,本项目可选择不同的检索策略抽取知识库中相应知识。知识图谱查询:本项目采取Nebula图数据库对知识图谱进行存储和管理,支持导入现有知识图谱进行知识检索;也支持通过大模型自动抽取实体和关系,挖掘出数据中多种繁芜关系。知识图谱推理+向量数据查询:本项目也供应两者的领悟搜索。先对每篇文档提取标签,同时结合用户提问培植图谱中的干系标签。末了,基于标签凑集在文档向量数据库中检索出与原问题干系的文档。知识库构建与DevOps知识库
如前文先容,通过知识库外挂和增强检索天生的手段可以很好的办理专有/私域知识问答的问题,接下来的核心问题是如何更好的构建知识库。
构建知识库时常常会面对以下问题:
不同的数据源之间格式不一致、质量参差不齐如何自动化地识别和剔除缺点、重复或无关紧要的数据知识库构建须要依赖于专业知识知识库须要定期更新,保持信息的准确性和时效性基于此,研究团队提出了这样的整体架构:
爬虫(Crawler):实现数据的搜集,保障数据更新的及时性;文档加载器(Loader):实现多源异构数据的导入,灵巧应对多样化的数据需求;洗濯过滤(Filter Func):实现数据的过滤洗濯,确保后续剖析的准确性和高效性;文本分析器(TextAnalyzer):实现对数据的智能化剖析,将繁芜的文本数据转化为构造化(包含知识图谱)、易于理解的信息;管道(Pipeline):串联全体过程,实现了数据输入到洗濯完毕输出的端到端自动化;
研究团队接下来会看重于DevOps领域数据的网络和构建,同时也期望为这条标准化的数据获取、洗濯能力&智能化处理流程为更多的私有知识库构建供应帮助。
平台与模型兼容
随着大型措辞模型(LLM)的涌现,我们见证了问题办理办法的变革,比如智能客服系统从依赖小规模模型微调和固定规则转向更为灵巧的智能体交互。
研究团队期望和周边开源的DevOps平台打通兼容,通过API的注册、管理和实行能够实现对话式交互驱动完成各种特界说务(数据查询、容器操作等)。
为了能够让本项目快速兼容干系开源组件和运维平台,我们通过python注册模板BaseToolModel类,编写Tool_name、Tool_description、ToolInputArgs、ToolOutputArgs、run等干系属性和方法即可实现工具的快速接入:
通过FastChat启动私有模型的推理做事或者其它Restful风格的API,如Qwen2.0、文心一言等,即可完成注册给到LLM进行调度利用也可注册蚂蚁集团干系开源项目和运维平台的API,实现LLM大略对话即可完成干系运维操作目前已封装工具清单如下:k-sgima非常检测、代码检索、文档检索、duckduckgo搜索、百度ocr识别、股票信息查询、景象查询、时区查询。
未来展望
目前DevOps框架还处于初期,还有很多不完善的地方,接下来研究团队操持在如下方面做核心演进:
多智能体调度核心:自动化构建智能体链路文档剖析增强:供应多种改动办法和知识图谱检索办法代码整库剖析:细化代码解析提取功能,丰富代码图谱schema知识库构建:构建面向不同垂直领域的知识库数据平台&模型兼容:与干系开源项目和运维平台的API打通功能展示在这五大核心模块的驱动下,DevOps-ChatBot具有如下这些功能。
首先是文本知识库管理:
文本载入、文本向量化做事、知识库的向量检索做事供应多个知识库的创建、管理、***等功能支持爬虫进行实时url内容爬取功能除了文本知识库,DevOps-ChatBot还支持知识图谱、代码知识库文件的上传和管理。
此外,研发团队还封装了一些Agent场景,诸如chatPhase、docChatPhase、searchChatPhase、codeChatPhase等,可支撑知识库问答、代码问答、工具调用、代码实行等功能。
除了运用在DevOps当中,DevOps-ChatBot在其他领域也是适用的!
在多智能体的调度下,DevOps-ChatBot可以延伸出很多故意思的玩法。
以下玩法可以通过本项目的模块组装构建完成:
代码阐明器(Code Interpreter)
只要上传一个数据文件,DevOps-ChatBot就会自动进行数据剖析:
工具利用
例如:查询某个做事器的基本时序,传入到监控工具中,并进行剖析
智能股票剖析(工具+代码阐明器)
用户通过大略的自然措辞查询,就可以获取特定股票的详细信息,包括历史股价图表、市场表现和可能的市场走向。
天生测试用例
DevOps-ChatBot可以针对代码库中的某个方法天生测试用例。
玩家拯救者(知识库问答)
除了这些运用处景,DevOps-ChatBot还可以回答与详细的网络游戏干系的问题。包含英雄信息、登场韶光、所属城邦等。
例如:英雄同盟的英雄关系知识图谱
One More Thing
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
— 完 —
量子位 QbitAI · 号签约
关注我们,第一韶光获知前沿科技动态
本文系作者个人观点,不代表本站立场,转载请注明出处!