🤖

VertexAIを使用してPRをReviewしてみた

2023/12/08に公開

VertexAI を使用してPR reviewを簡単にしてみた。
pr agentの裏側をVertexAIを使用してGitHubのPull RequestレビューをAIにしてみました。

  1. API aiplatform.googleapis.com を有効にします。
  2. 以下のようなyamlを用意し、GitHubのリポジトリに配置します。
steps:
  - name: 'gcr.io/cloud-builders/docker'
    entrypoint: bash
    secretEnv: ['GH_TOKEN']
    args:
      - '-c'
      - |
        docker run --network=cloudbuild -e config.model='vertex_ai/codechat-bison' \
        -e config.fallback_models='vertex_ai/codechat-bison' -e vertexai.vertex_project=$PROJECT_ID \
        -e GITHUB.USER_TOKEN=$$GH_TOKEN -e config.ai_timeout=300 -e config.verbosity_level=2 \
        codiumai/pr-agent:latest --pr_url $_HEAD_REPO_URL/pull/$_PR_NUMBER review

availableSecrets:
  secretManager:
  - versionName: projects/$PROJECT_ID/secrets/review-secret/versions/1
    env: GH_TOKEN
timeout: 3600s
options:
  logging: CLOUD_LOGGING_ONLY
  machineType: E2_HIGHCPU_32

machineTypeはこれでなくても良いですが遅いと時間がかかるかもしれません。
reviewコマンドのオプショナルもここで調整できます。

  1. CloudBuildのデフォルトサービスアカウントではVertexAIの権限がないので、別で用意します。(そのためLoggingオプションを変えています。)
    roles/aiplatform.userroles/cloudbuild.builds.builder, roles/secretmanager.secretAccessor, が最小限の権限となります。
  2. ここでPR作成者やレビュアが利用しやすいように、トリガーの設定を以下のようにします。
  1. 全て設定しおわった後に GitHub上で /gcbrun を実行すると以下のようなメッセージを得られます。

所感

  • OpenAPIとVertexAI両方試してみてあまり差が見られなかった。12月13日以降、この発表のとおり、賢くなる可能性があるかもしれないので今後に期待します。

Discussion