【要約】GitHub Actions で AI 自動レビューを作るまでに全 API でハマった記録 [Zenn_Python] | Summary by TechDistill
> Source: Zenn_Python
Execute Primary Source
// Problem
開発者がGitHub Actions上でAIによる自動レビューを実現しようとした際、各AIサービスのAPI仕様の違いにより、実装が停滞する問題に直面した。
- ・Anthropic API: シークレット値の改行混入によるHTTPヘッダーエラーや、プリペイド制による残高不足。
- ・Google Gemini API: 「無料枠」と「クレカ不要」の混同によるクォータ制限(limit: 0)や、モデルの廃止。
- ・Groq API: 無料枠のTPM(Tokens Per Minute)制限による、大きなdiff送信時の413エラー。
- ・実装面: LLMのJSON出力が不安定で、インラインコメント機能の実装に失敗。
// Approach
開発者は、エラーメッセージを分析し、各APIの制約に合わせた現実的な構成へと修正を繰り返した。
- ・認証対策: 正規表現を用いてAPIキーから印字可能ASCII文字のみを抽出する関数を実装。
- ・サービス選定: クレカ登録が必須なGeminiを避け、完全無料のGroqへ移行。
- ・制限回避: TPM制限を考慮し、送信するdiffの最大文字数を25,000文字に制限。
- ・構成変更: 不安定なJSON解析を避け、全体評価コメント方式へ実装を簡略化。
// Result
開発者は、GroqのLlama 3.3 70Bを用いることで、コストゼロの自動レビュー環境を実現した。
- ・実行基盤: GitHub ActionsによるPRトリガーでの自動動作。
- ・コスト: $0(完全無料・クレカ不要)。
- ・品質: Llama 3.3 70Bによる、設計パターンを考慮した適切なレビュー。
- ・安定性: diffサイズ制限とコメント方式の簡略化により、エラーのない動作を確立。
Senior Engineer Insight
> 本件は、APIの「無料枠」の定義がサービスごとに異なるという、実務上の落とし穴を突いている。Groqはプロトタイプや個人開発には極めて強力だが、TPM制限があるため、大規模な差分を扱う場合は設計上の工夫が不可欠だ。また、LLMの出力形式(JSON)に依存しすぎる実装は、本番環境では脆弱性となる。インラインコメントを諦め、全体コメントに回帰した判断は、システムの堅牢性を優先する観点から極めて妥当である。