Sweep AI概述

  Sweep AI的目标是取代码初级程序员(Junior Developer),可以根据需求或bug描述,自动从GitHub上拉取工程源码,将需求或bug描述自动转换为相应的代码改动,从而实现需求开发或bug修复,当然都是些简单的需求和bug,因这个工具的核心能力依赖ChatGPT-4,所以并没有试用体验其效果,网上对它的风评还可以,而且Sweep AI的代码切割策略,被LlamaIndex收录为公共API。

  Sweep AI扫描工程中所有的源文件,对于每个源文件,Sweep AI基于抽象语法树(AST),并设置一个代码段的最大长度max_chunk_size(默认值1536个字节),并以max_chunk_size为依据去拆分代码段。Sweep AI从AST的根节点开始,遍历整个语法树,遍历的同时,顺便将源文件拆分为不超过max_chunk_size的代码段。

  之后,Sweep AI将所有的代码段,依次调用Embedding模型,映射为语义向量,并将代码段、语义向量保存为向量数据库的一条记录,这个过程也就是构建RAG知识库。

  在推理阶段,Sweep AI将query与向量数据库进行相似度匹配,召回关联度最高的前K个代码段(Chunk)。

  图1为SweepAI开源项目首页。

 

image

图1 SweepAI开源项目首页

  SweepAI项目地址:

  https://github.com/sweepai/sweep/tree/b267b613d4c706eaf959fe6789f11e9a856521d1

一、SweepAI代码切分逻辑

       以下代码是SweepAI切分代码的核心逻辑,从AST的根节点出发,深度优先遍历整棵语法树。遍历每个AST节点的逻辑如下 :

  1)  如果当前节点的内容长度就已经超过max_chunk_size,则递归调用当前函数,切分当前AST节点;

  2)  如果当前节点的内容长度+current_chunk的长度,大于max_chunk_size,则将current_chunk作为新chunk输出保存,并使current_chunk指向当前AST节点;

  3)  如前2个条件均不满足,则将当前节点的内容合并到current_chunk。

    image

    

 

 

 

 

 

 

二、SweepAI的问题

       SweepAI代码切割逻辑,需要人为设定一个代码段最大长度,这个值不同的项目,合理取值可能各不一样,如果设置不当,很容易使最终Prompt超过大模型的最大token数限制。

 

关注更多安卓开发、AI技术、股票分析技术及个股诊断等理财、生活分享等资讯信息,请关注本人公众号(木圭龙的知识小屋)

 

posted @ 2026-03-27 09:21  tgltt  阅读(3)  评论(0)    收藏  举报