一个智能助手搞定软件开发全流程,从设计到运维统统交给AI

2024-06-05 28 0

智能助手负责整个软件开发流程,从设计到运维全部交给AI。

蚂蚁Codefuse团队

量子比特|公众号QbitAI

从设计、编码到测试、部署,甚至运维……整个软件开发流程都可以外包给AI!

覆盖软件开发全生命周期的端到端AI智能助手,让软件运营无缝化、智能化。

这款AI助手专门针对开发领域而设计,避免了大模型轻泛化、信息不及时、业务领域不全等问题。

这个AI助手叫做DevOps-ChatBot,由AntCodefuse项目团队开发。安装过程简单快捷,甚至可以通过docker一键部署。

DevOps-ChatBot的具体功能和性能请参见作者的贡献。

解决常见的大型故障模式

随着ChatGPT等大型通用模型和各个垂直领域大型模型的出现,各个领域的商业产品模型和用户信息获取模型正在逐渐发生变化。

但DevOps对信息的准确性、信息的时效性、问题和数据问题的复杂性要求较高,以至于轻笼统的话题、大模型、信息不及时、业务归属不完整的情况始终存在。

因此Codefus团队发起并开放了DevOps-ChatBot端到端智能AI助手,专为软件开发全生命周期而设计;

沙箱环境等技术增加知识图谱的垂直知识库,保证生成内容的准确性和适当性,并允许用户交互改变代码编译和执行以响应责任;

通过稳定分析RAG检索和生成技术等技术,大样本可以上下文感知,实现代码库级组件理解、仓库项目级代码修改和生成,而不仅仅是功能片段级代码补全;

通过增加链路、协同知识库、代码库、工具库、沙箱环境等设计Multi-Agent调度,大型模型可以实现DevOps领域复杂的多级任务;

跨域模型部署私有部署并评估FieldDevOps专有的数据,以确保特定任务的数据安全性和可用性。

Codefuse团队希望通过这个项目逐步改变开发运营行为,从传统的各地数据查询、独立去中心化运营平台的开发运营模式,转向大问答智能模式的开发运营;以至于“天下无难事”被Coder做出来了。

五个核心模块

DevOps-ChatBot的整体设计架构如下:

具体来说,它包含以下9个功能模块:

MultiSourceWebCrawl:一种网络爬虫,能够提取特定URL的相关信息

?DataProcess:数据处理模块,提供文档加载、数据清洗、文本分割等功能,整合多源格式的处理和数据文档。

?TextEmbeddingIndex:文档分析的核心,通过文档学习可以实现文档检索

VectorDatabaseGraphDatabase:用于数据管理的矢量数据库和图数据库

Multi-AgentScheduleCore:多代理调度核心,通过简单的配置即可构建所需的交互代理

PromptControl:定义代理管理上下文的提示控制和管理模块

沙箱:沙箱模块提供了代码编译和执行以及执行活动的环境。

LLM:大脑代理支持多种开源和LLM接口模型

?APIManagement:API管理组件,快速兼容相关开放原则并维护运营和平台

DevOps-ChatBot项目除了满足和协同上述服务模块外,还具有以下核心技术和功能差异点:

智能调度核心:系统连接完整的调度核心,多模式一键配置

全面的代码库分析:仓库级代码理解、代码编写、项目文档生成

文档分析增强:具有知识图谱检索和增强推理的文档知识库

专属垂直品类知识:DevOps专属知识库、垂直品类知识库自助一键构建

兼容垂直模型:DevOps领域的小模型,兼容周边DevOps平台

智能调度核心

在处理复杂问题时,我们可以通过React流程选择、调用和执行工具反馈,以使用多个工具包和多层次实现。

但在更复杂的场景下,比如复杂的代码开发,单个LLMAgent就很难应付了。

研究团队希望构建一个可扩展且易于使用的多智能体框架,通过简单的配置即可帮助完成日常办公、分析、开发、运维等多种常见功能。

此项多代理框架的目的借鉴了多个框架的优秀设计,例如metaGPT中的消息池、autogen中的代理选择器等。

DevOps-ChatBot中多智能体框架的要素包括以下六个方面:

Agent信息交互(Agent通信):Agent之间有效的信息交互依赖于上下文管理和问答效率的提高。它包含两种通信模式:简单、直观、易于理解的对话链,以及基于metaGPT的消息池框架;

标准操作流程(SOP):定义代理范围的输入和输出,并定义SOP标识符,如Tool、Design、Coding、Responding、Perfect等,以标准化LLM生成的分析和处理结果;

设计和执行:扩展大型模型、代理调度和代码生成工具的使用;

长期短期记忆管理(简称长期记忆管理):为了模拟人类社会的协作过程,增加了一个负责总结内容的Agent(就像一个对话助手),它对记忆进行总结并记录下来。长长的记忆。引发更有效的信息传输;

人与智能体交互:在复杂场景下,人类干预智能体交互过程并提供反馈,使大规模模型能够准确理解人类意图并更有效地执行任务;

提示控制与管理(PromptControlandManagement):负责协调和管理代理之间的提示交互,以提高系统的控制复杂度和事务效率。输入和输出采用Markdown结构化设计,显示清晰、有组织的结果,易于阅读和解析。

在实际操作过程中,用户可以通过协调需求链(CEO)、产品演示链(CPO、CFO、CTO)、工程链等多个代理来实现上线项目(DevPhase)的完整而复杂的任务。群体(精选精英;开发者1~N)、部署链(开发者、部署者)等

整个代码库分析

现阶段,大型模型主要用于代码生成、修复和组件工作,并面临以下挑战:

训练代码速度慢,频繁更新的开源/私有存储库的数据已经过时。

不知道代码上下文和代码库结构依赖性的大型示例。

研究小组囊括了开发中发现的主要问题。从下图中可以看到,在开发过程中,已有的代码库、依赖文件、检索代码、查询元信息等。

由于上述问题,团队通过软件分析获得了代码的逻辑结构,并将其存储在知识图谱中。然后通过RAG搜索迭代增强获得必要的上下文信息,并继续进行多智能体角色扮演,最终得到大模型和库代码的有机结合。

这部分的总体概要如下:

代码结构分析:清理和删除原始代码的重复部分,保留有价值的代码部分。然后,通过静态分析,从代码库中挖掘代码之间的依赖图,同时借助对大模型容量的理解对信号进行解释,作为大模型容量的重要补充。生成的结构。地理信息。

代码检索生成:提供三种不同的检索方式。搜索引擎生成主要是为了用户对代码库结构的理解(比如通过查询类的数量等),而图检索主要是为了当用户的查询包含特定的类和方法名称时检索代码。

同时,团队还在探索多智能体模型,迭代扫描单元代码以获取上下文信息。与此同时,其他代理负责其他任务,例如将数据精炼和压缩为统计数据并生成结果。

文档分析增强功能

当大规模科学模型涉及回答专业领域(如医疗、通信)和私人知识的问题时,回答问题(私人领域的数据)时,很可能产生幻觉,产生不可靠的答案。

直观的解决方案是安装特殊/私有控制数据来增加模型知识,但构建大型模型的成本很高。

因此,研究团队选择了插件式知识库方法和搜索增强生成方法,从知识库中检索与问题相关的数据,并将其作为附加知识输入到大模型中,使其可靠且实时。通过避免开销问题。

如何更准确地排查和恢复是本模块解决问题的核心。

整个DocSearch包含三个搜索链接。用户可以选择搜索本身或选择全部三个以获得不同的结果。

传统文档向量数据库查询:文档向量数据库是最流行的知识构建方法。使用TextEmbedding模型嵌入文档向量化并存储在向量数据库中,结合情境学习结果,本项目可以选择不同的检索方法来提取知识库中所需的知识。

知识图谱查询:该项目利用Cloud的图数据库来管理聚类和知识图谱,支持全知识图谱知识检索;数据中的关系。

了解给定查询的结果向量图:该策略还提供了两个查询的融合。首先,从每个文档中选择标签,并将标签编译成根据用户查询构建的图表。最后,通过放置标签集从文档向量数据库中检索与原始查询相关的文档。

知识库建设和DevOps知识库

如上所述,知识所有权/私人问答的问题可以通过知识库堵塞和增加研究成果得到很好的解决。

当我们构建知识库时,经常会面临以下问题;

不同来源的数据格式不方便、质量参差不齐

如何立即识别并消除错误、重复或不相关的数据

施工知识库以专业知识为基础

知识库必须不断更新,以保持信息的准确性和及时性

基于此,研究团队提出以下总体架构目标:

爬虫:识别数据采集并使得更新数据成为可能;

文档加载器(Loader):了解多源异构数据的重要性,灵活应对不同的数据需求;

清洗过滤(FilterFunc):数据工具的过滤清洗,保证后续分析的准确性和效率;

文本分析器:智能数据分析,对复杂结构化数据(包括图知识)和简单易懂的数据进行文本分析;

流水线:将整个流程串联起来,实现从数据输入到清晰输出的端到端自动化

接下来的研究团队将重点关注DevOps领域数据的收集和构建,也希望通过这种对获取和清洗数据过程的标准化理解来帮助构建更多的私有知识库。

平台和型号兼容性

随着大规模语言模型(LLM)的出现,我们看到了问题解决系统的变化。例如,智能客户操作系统改变了他们在灵活的座席交互中微调和固定规则的最小模型的竞争方式。

研究团队希望能够兼容开源DevOps平台,通过API注册、管理和执行,实现对话式通信,完成各种特定任务(查询数据、容器操作等)。

为了使本项目快速兼容相关开放元素和操作维护平台,在Python中注册一个BaseToolModel类的模型以及Toolname、Tooldescription、ToolInputArgs、ToolOutputArgs、ToolOutputArgs、ToolOutputArgs、run等相关属性和方法,实现快速访问工具:

您可以通过FastChat或其他restful风格的API,例如Qwen2.0、文心一言等启动私人猜测服务模型,并用LLM完成注册和设置。

您还可以注册APIAntGroup相关开源项目和运营支撑平台,并与LLM进行简单对话来维护运营并进行相关操作。

目前捆绑的工具列表如下:k-sigma异常检测、代码检索、文档检索、鸭子搜索、百度OCR识别、数据集查询、天气查询、时区查询。

心灵的未来

目前的DevOps框架还处于早期阶段,还存在很多不完善的地方。接下来,研究团队计划从以下几个方面来唤核:

多Agent调度核心:自动建立Agent连接

文档分析增强:提供更多校正方法和知识图谱检索方法

完整的库代码分析:干净的代码分析和函数提取以及表格图

知识库建设:构建不同垂直领域的知识库数据

平台模型兼容性:对接开源项目及运维平台相关API

显示功能

在这五个核心模块的驱动下,DevOps-ChatBot具有以下功能。

首先是知识库管理的信度;

文本加载、矢量化文本作品、矢量检索服务知识库

提供创建、管理、多种知识库存储库等功能

支持爬虫进行实时url内容爬取功能

除了文本知识库之外,DevOps-ChatBot还支持知识图谱和代码知识文件的加载和管理。

此外,研发团队还封装了代理场景,如chatPhase、docChatPhase、searchChatPhase、codeChatPhase等,可以支持基础问答、代码问答、工具调用、代码执行等功能。

除了在DevOps中的应用之外,DevOps-ChatBo甚至在其他领域itaq!

在多智能体调度下,DevOps-ChatBot可以扩展许多有趣的参与者。

通过本项目的group模块可以实现以下游戏:

代码解释器

只要您上传了文件,DevOps-ChatBot就会自动进行数据分析:

使用的仪器

例如:查询某个服务器的关键时序,发送到监控工具进行分析

智能股票分析(代码解释工具)

通过简单的自然语言查询,用户可以获得特定股票的详细信息,包括历史股票图表、市场表现和可能的市场趋势。

生成测试用例

DevOps-ChatBot可以通过代码库中的特定方法生成测试用例。

玩家救援(知识库问答)

除了这些应用场景之外,DevOps-ChatBot还可以解答与特定网页游戏相关的问题。包含英雄的信息、外貌、时间、所属城市等。

例如:英雄联盟英雄关系知识图谱

还有一件事

Codefus团队发布了DevOpsGPT,这是一个DevOps领域大型项目的开源模型,主要分为三个模块。

此外,还有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·今日头条签名联盟

关注我们,第一时间了解边缘技术动态

本站文章均由用户上传或转载而来,该文章内容本站无法检测是否存在侵权,如果本文存在侵权,请联系邮箱:2287318951@qq.com告知,本站在7天内对其进行处理。

发布评论