Skip to content
記事一覧に戻る
Open Source13 min

DeepSeek-Coder V3 を日本語コードベースに適用する: PR 自動レビューと CI 統合の実装

DeepSeek-Coder V3 on Japanese Codebases: Auto PR Review and CI Integration

Kenji WatanabePlatform Engineer Lead
2026-04-2213 min
DeepSeek CoderCode ReviewCI/CDGitHub ActionsJapanese

背景: 日本語コメント主体のコードベース問題

国内 SMB の業務システムには、コメント・変数名・テストケースが日本語主体のレガシー Java/PHP コードベースが今も多く残っている。クローズド API(GPT-4o、Claude)を使うと月額が読めず、社内データを外部に出すことへの抵抗もある。本記事では DeepSeek-Coder V3(236B MoE / 21B 活性)を Tokyo リージョンの A100 80GB×4 にセルフホストし、PR 自動レビューを CI に組み込んだ実装を紹介する。

アーキテクチャ概要

``` GitHub PR → webhook → Cloud Run (Node.js) → vLLM (DeepSeek-Coder V3) → コメント返却 → GitHub Checks API ```

vLLM 0.8 + tensor-parallel 4 で起動。OpenAI 互換エンドポイントを露出し、Node.js から普通の chat completions として叩く。コンテキストは 64k に制限し、PR の diff + 変更ファイル全文 + 関連テストファイルだけを投入する。

プロンプト設計

  • 段階でレビューを生成する: 1) 変更要約、2) リスク列挙、3) 改善提案。各段階の出力を JSON で受け取り、後段で整形する。

```json { "summary": "認証ミドルウェアの JWT 検証順序を変更", "risks": [ {"severity": "high", "file": "auth/jwt.php", "line": 142, "issue": "署名検証より先に exp チェックしているため、改ざん検知が遅延"} ], "suggestions": [...] } ```

CI 統合

GitHub Actions の `pull_request` トリガで起動し、レビュー結果を PR コメント + Check Run の両方に投稿する。Check Run の status は high リスクが 1 件以上で failure、それ以下は neutral にしている。CODEOWNERS 必須レビューと併用しても摩擦はない。

```yaml # .github/workflows/ai-review.yml name: AI Review on: pull_request jobs: review: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 with: { fetch-depth: 0 } - run: | DIFF=$(git diff origin/main...HEAD) curl -X POST https://review.internal/api/review \ -H "Authorization: Bearer ${{ secrets.REVIEW_TOKEN }}" \ -d "{"diff": "$DIFF", "pr": ${{ github.event.number }}}" ```

日本語特有の調整

DeepSeek-Coder は日本語コメントの文脈解釈は十分こなすが、レビューコメントの口調が「である調」になりがちで現場との温度差が出やすい。`system` プロンプトで「ですます調・敬語不要・technical reviewer のトーン」と明示すると揃う。社内 R&D では false positive 率が約 18% から 7% へ下がった、というのが我々の観測値である。

まとめ

  • セルフホスト DeepSeek-Coder V3 で API 月額をほぼゼロ化
  • 日本語コードベースでも文脈把握は十分実用域
  • CI 統合は GitHub Checks API + PR コメントの両建てで運用負荷が低い
  • 評価指標は false positive 率、レビュー所要時間、開発者の介入率の 3 軸で見る

まずは無料相談から

お客様のIT課題をお聞かせください。最適なソリューションをご提案いたします。

お問い合わせはこちら