Upgrade to Pro — share decks privately, control downloads, hide ads and more …

GitHub Actions × RAGでコードレビューの検証の結果

sho_
February 05, 2025

GitHub Actions × RAGでコードレビューの検証の結果

2025/01/31にてクラスメソッド社日比谷オフィスにて開催された「Classmethod AI Talks」というイベントにて登壇させていただきましたので、こちらにて使用した発表資料を共有いたします。

sho_

February 05, 2025
Tweet

Other Decks in Programming

Transcript

  1. © solvio, inc. 4 背景や現状の課題 コードレビューの現状 - レビューに⼯数がかかってしまう。 - コード規約を徹底するのが難しい

    - レビュアーごとに指摘基準がバラバラ - ジュニアエンジニアが規約を覚えるのに時間がかかる 解決したい問題 - レビュアーの⼯数軽減 - レビュー内容の属⼈性の減少 - 規約の⼀貫した適⽤ - 本質的なロジックレビューに集中できるように
  2. © solvio, inc. 7 Reusable Workflowの構成(呼び出し元) 1.リポジトリを checkout 2.Git差分と周辺コードを取得 (git

    diff origin/main…HEAD) 3.Secrets(OPENAI_API_KEY, GITHUB_TOKEN) をPythonに渡す 4.Pythonスクリプトで処理開始 このWorkflowにて⾏っていること • レビュー対象RepoからこのWorkflowを呼び出しレビューの実⾏ • 事前にSecretsにAPIキー設定必須 • GitHub Token も使ってPRにコメント投稿 Workflow⼀部抜粋
  3. © solvio, inc. 8 メインスクリプト 1.取得したdiffとその周辺コードをもとに関連 コード規約を取得 2. コード規約とdiffを⼊⼒としてLLMにてレ ビュー作成

    3. 総合判断としてカテゴライズ Approve / Requested Changes /Comment 4.GitHubへレビュー投稿 メインスクリプト⼀部抜粋 メインスクリプトにて⾏っていること
  4. © solvio, inc. 9 プロンプトサンプル プロンプト⼀部抜粋 ⼊⼒データとして - コード規約 -

    コード差分とその周辺 を受け取り、その情報からコードをレビュー をするようなプロンプト
  5. © solvio, inc. 12 実際のレビュー レビューの内容 - Approve/Requested changes/Commentの分類 -

    どのコード規約を参照して回答しているか - 何故修正が必要なのか - 修正案の提⽰ 実際のレビュー(⼀部抜粋) レビュー対象 - 5つのファイルでのコード変更 - ⾔語に関してはPythonを利⽤している
  6. © solvio, inc. 14 現状の評価(Good Points) 【コスト】  1PRに対して5円程度(5ファイルでの変更、IN:4000 / OUT:1000

    / TOTAL:5000)  ⇩  エンジニアが⾏う際の⼈件費に⽐べるとコスパ◎ 【時間】  1分前後  ⇩  ⼈間が⾏う際に20分だとしても⼤幅減少(参考) レビューが早いのでエンジニアは早期対応→効率化 【規約の網羅性】  体感ですとかなり網羅している  ⇩  ⼈間が⾏うと⾒落としが存在する点の改善
  7. © solvio, inc. 15 現状の評価(Negative Poins) 【変更点が多い時の挙動】  コードが多くなった時に全体を通したコードができていないことがある  ⇩  Diffごとにレビューするような仕組みへの変更

    【⾔語に対する精度】  Python以外の⾔語に対する精度が変わる可能性がある  ⇩ ⾔語ごとに使⽤するモデルの変更 【不明なレビュー】  レビューの際に関係ないコード規約を参照している  ⇩  抽出したコード規約を評価するシステムの導⼊
  8. © solvio, inc. 16 今後の展望 - ⾃動修正PR: - AIが出した修正案にて⾃動PR提出 -

    教育⽤システムとしての⽅向 - 新卒‧未経験エンジニア向けの「AIコードメンター」システム化 - セキュリティ対策 - OSSのLLMを使⽤することでのセキュリティ強化