跳转到内容

6.3 DeepSeek 在 CI/CD 中的应用

用 DeepSeek 的低价 API 做自动化代码审查——每次 PR 花费不到 $0.01。


这一节在讲什么?

CI/CD 是现代开发流程的核心环节——每次提交代码都会触发自动化检查。DeepSeek 的低价 API 让 AI 代码审查在 CI/CD 中变得经济可行——每次审查花费不到 $0.01,比 Claude 便宜 10 倍以上。这一节我们学习在 GitHub Actions 中集成 DeepSeek,实现自动代码审查和 PR 描述生成。


GitHub Actions 集成

yaml
name: AI Code Review
on:
  pull_request:
    types: [opened, synchronize]

jobs:
  ai-review:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
        with:
          fetch-depth: 0

      - name: Install dependencies
        run: pip install openai

      - name: AI Code Review
        env:
          DEEPSEEK_API_KEY: ${{ secrets.DEEPSEEK_API_KEY }}
        run: |
          python scripts/ai_review.py

代码审查脚本

python
import os
import subprocess
from openai import OpenAI

client = OpenAI(
    api_key=os.environ["DEEPSEEK_API_KEY"],
    base_url="https://api.deepseek.com"
)

diff = subprocess.check_output(
    ["git", "diff", "origin/main...HEAD"],
    text=True
)

response = client.chat.completions.create(
    model="deepseek-chat",
    messages=[
        {
            "role": "system",
            "content": "你是一个代码审查专家。请审查以下代码变更,重点关注安全性和正确性。"
        },
        {
            "role": "user",
            "content": f"审查以下代码变更:\n{diff[:8000]}"
        }
    ],
    max_tokens=2048,
    temperature=0.1
)

review = response.choices[0].message.content

with open("review-comment.md", "w") as f:
    f.write(f"## AI Code Review\n\n{review}")

PR 描述生成

python
commits = subprocess.check_output(
    ["git", "log", "origin/main...HEAD", "--oneline"],
    text=True
)

response = client.chat.completions.create(
    model="deepseek-chat",
    messages=[{
        "role": "user",
        "content": f"根据以下 commit 历史和 diff,生成 PR 描述:\nCommits:\n{commits}\n\nDiff:\n{diff[:6000]}"
    }],
    max_tokens=1024,
    temperature=0.3
)

成本控制

CI/CD 场景下的成本控制策略:

- 用 V3 而非 R1(V3 的审查质量已经足够)
- 限制 diff 大小(超过 8000 token 的 diff 截断处理)
- 设置 max_tokens=2048(审查结果不需要太长)
- 利用缓存命中(固定 system prompt)
- 只在关键分支触发(main/develop,不在 feature 分支触发)

预估成本:
- 每次 PR 审查约 5000 input + 1500 output token
- V3 成本:5000×$0.27/M + 1500×$1.10/M ≈ $0.003
- 每天 20 个 PR:$0.06/天 ≈ $1.8/月

常见误区

误区一:CI/CD 中用 R1 做代码审查

成本太高。R1 的思考过程会消耗大量 token,每次审查可能花费 $0.05+。V3 的审查质量已经足够,成本只有 R1 的 1/10。

误区二:AI 审查能替代人工审查

不能。AI 审查是"第一道防线",能发现安全漏洞和性能问题,但对业务逻辑的理解不如人类。AI 审查 + 人工审查,才是完整的流程。

误区三:每次提交都触发 AI 审查

太频繁的触发会浪费 API 费用。建议只在 PR 创建和更新时触发,不在每次 push 时触发。

误区四:AI 审查结果直接合并

AI 的审查意见可能有误——它可能误报问题,也可能遗漏真正的 bug。审查结果应该作为参考,最终的合并决策由人类做出。


小结

这一节我们学习了 DeepSeek 在 CI/CD 中的应用:GitHub Actions 集成、代码审查脚本、PR 描述生成。成本控制的关键是用 V3 而非 R1、限制 diff 大小、利用缓存命中。每次 PR 审查花费不到 $0.01,月度成本不到 $2。下一章我们学习本地部署。

基于 MIT 许可发布