cover_image

Nova(AI-CodeReview)介绍

BG 三七互娱技术团队
2024年08月19日 10:00
01

项目由来

图片
图片

受启发于各个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能拥有新颖且高质量的代码审查能力。

02

流程介绍

图片
图片
图片

如上的"Retrieve Code Context"和"Code Review"可以替换成任意实现,如果不想用AST Symbol搜索可以改为RAG,不想用Dify也可以使用其他模型进行Review。

代码实现以下接口即可:

图片
03

部署架构

图片
图片
图片

部署非常简单,打好Nova镜像后,只在.gitlab-ci.yml增加一个job即可,如下:

图片
04

代码安全

图片
图片

支持Review文件/Context文件路径过滤,也支持文本内容敏感词过滤。

图片
05

功能展示

图片
图片

支持Dify配置

图片
图片

融入Gitlab-CI Pipeline

图片
图片
图片

打通SonarQube

图片
图片

理解项目上下文

图片
图片

成功找到"gschatsdk.NewSdk()"的函数定义:

图片

还原上下文代码:

图片
06

难点与展望

图片
图片

1.Code Review更加精确,过滤非必要的建议,只有把AI审核意见做精准才能加到质量阈

2.不同开发语言/项目支持定制审核提示语

图片


继续滑动看下一个
三七互娱技术团队
向上滑动看下一个