一、引言
在当今快速发展的软件开发领域,持续集成和持续交付(CI/CD)流程已经成为确保软件质量和加速产品上市时间的关键因素。随着人工智能(AI)技术的不断进步,其在DevOps实践中的应用也日益广泛,特别是在代码评审环节中,AI智能评审正逐渐成为提高开发效率和代码质量的新趋势。面对这一变革,如何有效地整合现有的工具链,并利用先进的AI模型来优化代码评审过程,成为了众多企业探索的方向。
在这样的背景下,云效平台作为阿里巴巴集团旗下的企业级研发管理平台,提供了一套全面的解决方案,帮助企业实现从代码提交到应用上线的自动化流程。其中,云效流水线Flow以其灵活的集成机制,为企业提供了定制化服务的可能性。而DeepSeek等大模型则代表了当前最先进的自然语言处理能力,它们不仅能够理解复杂的编程语言,还能通过深度学习算法对代码进行智能分析和评审。
本文旨在展示如何在云效环境中利用DeepSeek等大模型来实施AI智能评审。结合云效Codeup、流水线Flow以及DeepSeek模型,构建一个高效、自动化的代码评审系统。这个系统不仅能显著减少人工评审的工作量,还能提升代码的整体质量,降低潜在风险。
二、方案概述
云效流水线Flow提供了灵活的集成机制,企业可以在云效Flow内开发一个自定义步骤来调用DeepSeek等大模型,对云效Codeup提交的代码评审进行智能评审,并通过云效的API,将这些评审意见回写到合并请求中。
同时,结合云效流水线Flow的能力还可以对提交的代码进行单元测试、代码扫描等任务,并将这些结果一并展示回云效Codeup的提交历史中,反馈每个commit的代码质量状态。
三、实现步骤
1、创建云效组织并获取访问令牌
访问云效工作台,并创建您自己的组织。
为了能够让大模型调用云效API获取合并请求详情,并把Review的结果写到合并请求中,需要创建一个云效API的访问令牌。
点击右上角的头像-个人设置-新建令牌。
设置令牌的权限:代码比较设置为只读,合并请求设置为读写。
创建好之后,将令牌保存下来。
2、创建百炼APIKey
访问阿里云大模型服务平台百炼,创建APIKey。
百炼为新用户提供了百万免费的tokens。
3、创建Flow自定义步骤调用大模型能力
安装Node.js,若已经安装可以忽略。
在Node.js 在命令提示符中输入以下命令进行Flow-CLI的安装。
npm install -g @flow-step/flow-cli --registry=https://registry.npmmirror.com
AI 代码解读
运行flow-cli login 的登录命令,选择刚才创建的云效组织。
从 https://atomgit.com/flow-example/yunxiao-mr-review-step 克隆代码到本地,修改其中的step.yaml文件,修改第4~5行,为步骤id和name添加后缀。
命令行切换到刚才克隆代码的代码库的根目录,执行下面的命令以发布步骤。
flow-cli step publish --auto-version
AI 代码解读
步骤发布后,访问https://flow.aliyun.com/,在步骤管理-组织步骤中可以看到MergeRequestLLMReviewer 步骤,即表示步骤发布成功。如果你看不到步骤管理菜单项,是因为你当前账号没有步骤管理的权限,可以切换为管理员账号或者让管理员赋予你步骤管理的权限。
4、创建进行代码Review的示例代码库
访问codeup.aliyun.com,导入代码库https://atomgit.com/flow-example/CodeReviewSampleCode.git到云效Codeup中。
5、创建流水线
在flow.aliyun.com中创建流水线,模板选择【Nodejs 测试、构建】模版
代码源选择刚才导入的示例代码库,并开启代码源触发,设置触发条件为 【合并请求 新建/更新】。
这里我们只做CodeReview,无需构建,所以我们删除掉模板中的Nodejs构建任务。我们添加一个空任务,并在空任务中添加刚才我们创建的自定义步骤,以便调用大模型能力做CodeReview。
可以按需选择模型,支持 deepseek-r1、deepseek-v3、qwen-max,并填入云效token(前面创建的个人访问令牌)和百炼APIkey。不过为了安全起见,不建议您直接填入这些信息,最好的方式是创建2个私密环境变量: YUNXIAOTOKEN、{BAILIAN_APIKEY},在环境变量中中配置刚才的私密信息。
6、创建合并请求
在前面导入的CodeReview示例代码库中,创建合并请求,从dev1分支合并到main分支。
当合并请求被创建之后,进入云效Flow,可以看到流水线被触发,该流水线会运行代码检查和单元测试,并且调用大模型进行智能评审。
查看自定义步骤的日志输出,可以看到大模型对代码评审的进行处理,并最终将结果回写到Codeup端。
在Codeup的代码评审侧可以看到回写的评审意见。
点击自动化检查标签可以看到流水线的代码扫描和单元测试结果。
四、总结
在云效平台上利用DeepSeek等大模型实现AI智能评审的过程。通过自定义Flow步骤来集成DeepSeek模型,并将其应用于代码评审过程中。这一过程不仅实现了对提交代码的自动化审查,还结合了单元测试、代码扫描等功能,全面提升了代码质量。
通过将AI技术融入日常的代码评审工作中,企业不仅能加速开发周期,还能保证代码的一致性和安全性。随着技术的发展,我们可以期待AI智能评审将在未来的软件开发中扮演更加重要的角色,助力每一个项目成功上线。