受启发于各个AI编码助手和AI Code Review方案,我们希望AI Code Review具备以下特性:
1). 与现有的CI流程紧密贴合,即Gitlab-Runner+SonarQube;
2). 具备整个项目的上下文理解能力,支持多编程语言,并且能以较低成本实现;
3). 具备高扩展性,可以使用任意模型或AI-Agent平台,可以使用任意的上下文搜索方式,如RAG或AST搜索;
于是Nova应运而生。
Nova[/ˈnoʊ.və/],是指新星,象征着新生和亮度。结合 Code Review,我们寄望Nova能拥有新颖且高质量的代码审查能力。
如上的"Retrieve Code Context"和"Code Review"可以替换成任意实现,如果不想用AST Symbol搜索可以改为RAG,不想用Dify也可以使用其他模型进行Review。
代码实现以下接口即可:
部署非常简单,打好Nova镜像后,只在.gitlab-ci.yml增加一个job即可,如下:
支持Review文件/Context文件路径过滤,也支持文本内容敏感词过滤。
成功找到"gschatsdk.NewSdk()"的函数定义:
还原上下文代码:
1.Code Review更加精确,过滤非必要的建议,只有把AI审核意见做精准才能加到质量阈;
2.不同开发语言/项目支持定制审核提示语。