从设计、编码到测试、部署,甚至是运维……软件开发的整个流程,可以通通交给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领域数据的收集和构建,同时也期望为这条标准化的数据获取、清洗能力&智能化处理流程为更多的私有知识库构建提供帮助。
随着大型语言模型(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可以延伸出很多有意思的玩法。
以下玩法可以通过本项目的模块组装构建完成:
只要上传一个数据文件,DevOps-ChatBot就会自动进行数据分析:
例如:查询某个服务器的基本时序,传入到监控工具中,并进行分析
用户通过简单的自然语言查询,就可以获取特定股票的详细信息,包括历史股价图表、市场表现和可能的市场走向。
DevOps-ChatBot可以针对代码库中的某个方法生成测试用例。
除了这些应用场景,DevOps-ChatBot还可以回答与具体的网络游戏相关的问题。包含英雄信息、登场时间、所属城邦等。
例如:英雄联盟的英雄关系知识图谱
Codefuse团队发布了一个针对DevOps领域大模型相关的开源项目DevOpsGPT,主要分为三个模块,本文中的DevOps-ChatBot就是其中之一。
除此之外,还有DevOps-Model、DevOps-ChatBot两个模块,分别为DevOps领域专属大模型和DevOps领域智能助手。
团队的目标是在DevOps领域,包含开发、测试、运维、监控等场景,真正地结合大模型来提升效率、成本节约。
团队期望相关从业者一起贡献自己的才智,来让“天下没有难做的coder”,也会定期分享对于LLM4DevOps领域的经验&尝试。
【开源免费】AutoGPT是一个允许用户创建和运行智能体的(AI Agents)项目。用户创建的智能体能够自动执行各种任务,从而让AI有步骤的去解决实际问题。
项目地址:https://github.com/Significant-Gravitas/AutoGPT
【开源免费】MetaGPT是一个“软件开发公司”的智能体项目,只需要输入一句话的老板需求,MetaGPT即可输出用户故事 / 竞品分析 / 需求 / 数据结构 / APIs / 文件等软件开发的相关内容。MetaGPT内置了各种AI角色,包括产品经理 / 架构师 / 项目经理 / 工程师,MetaGPT提供了一个精心调配的软件公司研发全过程的SOP。
项目地址:https://github.com/geekan/MetaGPT/blob/main/docs/README_CN.md
【开源免费】ScrapeGraphAI是一个爬虫Python库,它利用大型语言模型和直接图逻辑来增强爬虫能力,让原来复杂繁琐的规则定义被AI取代,让爬虫可以更智能地理解和解析网页内容,减少了对复杂规则的依赖。
项目地址:https://github.com/ScrapeGraphAI/Scrapegraph-ai
【开源免费】FASTGPT是基于LLM的知识库开源项目,提供开箱即用的数据处理、模型调用等能力。整体功能和“Dify”“RAGFlow”项目类似。很多接入微信,飞书的AI项目都基于该项目二次开发。
项目地址:https://github.com/labring/FastGPT
【开源免费】graphrag是微软推出的RAG项目,与传统的通过 RAG 方法使用向量相似性作为搜索技术不同,GraphRAG是使用知识图谱在推理复杂信息时大幅提高问答性能。
项目地址:https://github.com/microsoft/graphrag
【开源免费】Dify是最早一批实现RAG,Agent,模型管理等一站式AI开发的工具平台,并且项目方一直持续维护。其中在任务编排方面相对领先对手,可以帮助研发实现像字节扣子那样的功能。
项目地址:https://github.com/langgenius/dify
【开源免费】RAGFlow是和Dify类似的开源项目,该项目在大文件解析方面做的更出色,拓展编排方面相对弱一些。
项目地址:https://github.com/infiniflow/ragflow/tree/main
【开源免费】phidata是一个可以实现将数据转化成向量存储,并通过AI实现RAG功能的项目
项目地址:https://github.com/phidatahq/phidata
【开源免费】TaskingAI 是一个提供RAG,Agent,大模型管理等AI项目开发的工具平台,比LangChain更强大的中间件AI平台工具。
项目地址:https://github.com/TaskingAI/TaskingAI
【开源免费】XTuner 是一个高效、灵活、全能的轻量化大模型微调工具库。它帮助开发者提供一个简单易用的平台,可以对大语言模型(LLM)和多模态图文模型(VLM)进行预训练和轻量级微调。XTuner 支持多种微调算法,如 QLoRA、LoRA 和全量参数微调。
项目地址:https://github.com/InternLM/xtuner
【开源免费】LangGPT 是一个通过结构化和模板化的方法,编写高质量的AI提示词的开源项目。它可以让任何非专业的用户轻松创建高水平的提示词,进而高质量的帮助用户通过AI解决问题。
项目地址:https://github.com/langgptai/LangGPT/blob/main/README_zh.md
在线使用:https://kimi.moonshot.cn/kimiplus/conpg00t7lagbbsfqkq0