如何在云效中使用 DeepSeek 等大模型实现 AI 智能评审

作者:崔力强、黄博文

除了代码智能补全外,AI 代码智能评审是 DevOps 领域受开发者广泛关注的另一场景了。本文,我们将结合云效代码管理 Codeup、流水线 Flow 和 DeepSeek,分享一种企业可快速自主接入,即可实现的 AI 智能评审解决方案,希望给大家一些启发。

方案简介

云效流水线 Flow 提供了灵活的集成机制,企业可以在云效 Flow 内开发一个自定义步骤来调用 DeepSeek 等大模型,对云效 Codeup 提交的代码评审进行智能评审,并通过云效的 API,将这些评审意见回写到合并请求中。

同时,结合云效流水线 Flow 的能力还可以对提交的代码进行单元测试、代码扫描等任务,并将这些结果一并展示回云效 Codeup 的提交历史中,反馈每个 commit 的代码质量状态。

下面我们将会一步步指引您如何实现这个自定义的步骤,并配置流水线来实现代码的智能评审。

实现步骤

1、创建云效组织并获取访问令牌

如您没有云效组织,可访问 devops.aliyun.com ,并创建您自己的组织。

为了能够让大模型调用云效 API [ 1] 获取合并请求详情,并把 Review 的结果写到合并请求中,我们需要创建一个云效 API 的访问令牌。

点击右上角的头像-个人设置-新建令牌,并按照下图中设置令牌的权限:代码比较设置为只读,合并请求设置为读写。

创建好之后,将令牌保存下来。

2、创建百炼 APIKey

前往阿里云大模型服务平台百炼,创建 APIKey,保存方便后续调用。

🔔 注: 百炼为新用户提供了千万免费的 tokens,大家可以放心使用。

3、创建 Flow 自定义步骤调用大模型能力

首先,安装 flow-cli 的最新版本。(需要本地有安装 nodejs。)

bash 复制代码
# 安装flow-cli最新版本
npm install -g @flow-step/flow-cli --registry=https://registry.npmmirror.com

运行 flow-cli 的登录命令,选择你刚才创建的云效组织。

css 复制代码
flow-cli login

atomgit.com/flow-exampl... 克隆代码到本地,修改其中的 step.yaml 文件,修改第 4~5 行,为步骤 id 和 name 添加后缀。

由于步骤名称是全局唯一的,因此需要添加"组织 ID"的后缀。

组织 IP 获取路径:点击云效页面右上角头像 -> 管理后台,打开后台管理页面,在其中找到"组织 ID"。

命令行切换到刚才克隆代码的代码库的根目录,执行下面的命令以发布步骤。

arduino 复制代码
flow-cli step publish --auto-version

🔔 注: flow-cli 的详细操作可参见文档:help.aliyun.com/zh/yunxiao/...

步骤发布后,访问 flow.aliyun.com,在步骤管理-组织步骤中可以看到 MergeRequestLLMReviewer 步骤,即表示步骤发布成功。

4、创建进行代码 Review 的示例代码库

访问 codeup.aliyun.com,导入代码库 atomgit.com/flow-exampl... 到云效 Codeup 中。

5、创建流水线

flow.aliyun.com 中创建流水线,模板选择【Nodejs 测试、构建】模版。

代码源选择刚才导入的示例代码库,并开启代码源触发,设置触发条件为【合并请求 新建/更新】。

因为这里我们只做 CodeReview,无需构建,所以我们删除掉模板中的 Nodejs 构建任务。我们添加一个空任务,并在空任务中添加刚才我们创建的自定义步骤,以便调用大模型能力做 CodeReview。

你可以按需选择模型,支持 deepseek-r1、deepseek-v3、qwen-max,并填入云效 token(前面创建的个人访问令牌)和百炼 APIkey。不过为了安全起见,我们不建议您直接填入这些信息,最好的方式是创建 2 个私密环境变量: <math xmlns="http://www.w3.org/1998/Math/MathML"> Y U N X I A O T O K E N 、 {YUNXIAO_TOKEN}、 </math>YUNXIAOTOKEN、{BAILIAN_APIKEY},在环境变量中中配置刚才的私密信息。

6、创建合并请求

在前面导入的 CodeReview 示例代码库中,创建合并请求,从 dev1 分支合并到 main 分支。

当合并请求被创建之后,进入云效 Flow,可以看到流水线被触发,该流水线会运行代码检查和单元测试,并且调用大模型进行智能评审。

查看自定义步骤的日志输出,可以看到大模型对代码评审的 diff 进行处理,并最终将结果回写到 Codeup 端。

在 Codeup 的代码评审侧可以看到回写的评审意见。

点击自动化检查标签可以看到流水线的代码扫描和单元测试结果。

以上即是方案的全部内容。

点击此处,体验完整流程,前 100 位可获得积木拼图、阿里云代码马克杯等实物奖品。

相关链接:

1\] 云效 API *[help.aliyun.com/zh/yunxiao/...](https://link.juejin.cn?target=https%3A%2F%2Fhelp.aliyun.com%2Fzh%2Fyunxiao%2Fdeveloper-reference%2Fapi-reference-standard-proprietary%2F "https://help.aliyun.com/zh/yunxiao/developer-reference/api-reference-standard-proprietary/")*

相关推荐
matrixlzp1 小时前
Nginx 源码安装成服务
nginx·云原生
张青贤7 小时前
K8s中的containerPort与port、targetPort、nodePort的关系:
云原生·容器·kubernetes
zhojiew13 小时前
istio in action之服务网格和istio组件
云原生·istio
代码的奴隶(艾伦·耶格尔)16 小时前
微服务!!
微服务·云原生·架构
是垚不是土20 小时前
探秘高可用负载均衡集群:企业网络架构的稳固基石
运维·服务器·网络·云原生·容器·架构·负载均衡
杰克逊的日记20 小时前
大规模k8s集群怎么规划
云原生·容器·kubernetes
大G哥21 小时前
实战演练:用 AWS Lambda 和 API Gateway 构建你的第一个 Serverless API
云原生·serverless·云计算·gateway·aws
matrixlzp21 小时前
K8S Ingress、IngressController 快速开始
云原生·容器·kubernetes
探索云原生1 天前
一文搞懂 GPU 共享方案: NVIDIA Time Slicing
ai·云原生·kubernetes·gpu
喵叔哟1 天前
21.【.NET 8 实战--孢子记账--从单体到微服务--转向微服务】--单体转微服务--身份认证服务拆分规划
微服务·云原生·架构