๐Ÿค–
๊ฐœ๋ฐœโ€ขAI/ML

GPT๋กœ ์ฝ”๋“œ๋ฆฌ๋ทฐ ๋ฐ›๊ธฐ

2024.08.01

๊ฐœ์ธ ํ”„๋กœ์ ํŠธ๋กœ ๋ธ”๋กœ๊ทธ๋ฅผ ๊ฐœ๋ฐœ์ค‘์ธ๋ฐ, ํšŒ์‚ฌ์—์„œ ์ฝ”ํŒŒ์ผ๋Ÿฟ ์ฝ”๋“œ๋ฆฌ๋ทฐ ๊ด€๋ จ ์ด์•ผ๊ธฐ๋ฅผ ๋™๋ฃŒ๋ถ„๋“ค๊ป˜ ๋“ฃ๊ณ  gpt์—๊ฒŒ ์ฝ”๋“œ๋ฆฌ๋ทฐ๋ฅผ ๋ฐ›์•„๋ณด๊ธฐ๋กœ ํ–ˆ๋‹ค.

์•„๋ฌด๋ž˜๋„ ํ˜ผ์ž ์ฝ”๋”ฉ์„ ํ•˜๋Š” ๊ฒƒ ๋ณด๋‹ค๋Š” ์ƒ๊ฐ์น˜ ๋ชปํ•œ ๋ถ€๋ถ„์—์„œ ๋„์›€์ด ๋˜์ง€ ์•Š์„๊นŒ ์‹ถ์—ˆ๋‹ค.

1. OpenAi Api ํ‚ค ๋ฐœ๊ธ‰

๋จผ์ € Open Api ์— ์ ‘์†ํ•ด์„œ ๋กœ๊ทธ์ธ ํ›„ ๋Œ€์‹œ๋ณด๋“œ๋กœ ์ด๋™ํ•ด ์™ผ์ชฝ ๋ฉ”๋‰ด ์ค‘ API Keys์—์„œ ํ‚ค๋ฅผ ๋ฐœ๊ธ‰ํ•œ๋‹ค.

ํ‚ค๋Š” ๋ฐœ๊ธ‰ ํ›„ ๋‹ค์‹œ ํ™•์ธํ•  ์ˆ˜ ์—†์œผ๋‹ˆ ๋ณต์‚ฌํ•ด์„œ ์ €์žฅํ•ด๋‘์ž.

2. Github์— API ํ‚ค ๋“ฑ๋ก

๋ฐœ๊ธ‰๋ฐ›์€ key๋ฅผ ์ฝ”๋“œ๋ฆฌ๋ทฐ ๋ด‡์„ ์—ฐ๋™ํ•  ๋ ˆํฌ์ง€ํ† ๋ฆฌ์˜ Settings > Secrets and Variables > Actions ๋กœ ์ ‘๊ทผํ•ด Secret์„ ๋“ฑ๋กํ•ด์•ผ ํ•˜๋Š”๋ฐ, ๋‚˜๋Š” OPENAI_API_KEYd๋กœ ์ €์žฅํ–ˆ๋‹ค.

open api key ์ €์žฅ ์ด๋ฏธ์ง€

3. Github ์›Œํฌํ”Œ๋กœ์šฐ ์ž‘์„ฑ

์ฝ”๋“œ๋ฆฌ๋ทฐ gpt๋Š” ๋งŽ์€ ๊ฐœ๋ฐœ์ž๋ถ„๋“ค์ด ๊ฐœ๋ฐœํ•ด์ฃผ์…”์„œ ๋‹ค์–‘ํ•˜๊ฒŒ ์žˆ์„ํ…๋ฐ, ๋‚˜๋Š” ๋Œ€๋ถ€๋ถ„์ด ์‚ฌ์šฉํ•˜๊ณ  ์ž๋ฃŒ๋„ ๋งŽ์€ ์ค‘๊ตญ์ธ ๊ฐœ๋ฐœ์ž๊ฐ€ ๊ฐœ๋ฐœํ•œ ์ฝ”๋“œ๋ฆฌ๋ทฐ gpt๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ๋กœ ํ–ˆ๋‹ค.

name: Code Review From ChatGPT

permissions:
  contents: read
  pull-requests: write

on:
  pull_request:
    types: [opened, synchronize]

jobs:
  code-review:
    runs-on: ubuntu-latest
    steps:
      - uses: anc95/ChatGPT-CodeReview@main
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
          OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
          LANGUAGE: Korean
          MODEL: gpt-4o-mini

ํŒŒ์ผ๋ช…๊ณผ name์€ ์›ํ•˜๋Š” ์ด๋ฆ„์œผ๋กœ ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋‹ค.

GITHUB_TOKEN์€ ์ž๋™์œผ๋กœ ์ƒ์„ฑ๋˜๋‹ˆ ๊ทธ๋Œ€๋กœ ์ž‘์„ฑํ•˜๋ฉด ๋˜๊ณ , OPENAI_API_KEY๋Š” ๋ณธ์ธ ๊นƒํ—ˆ๋ธŒ์— ๋“ฑ๋กํ•œ ์‹œํฌ๋ฆฟ ํ‚ค ์ด๋ฆ„์„ ์ž…๋ ฅํ•˜๋ฉด ๋œ๋‹ค.

์–ธ์–ด๋Š” ํ•œ๊ตญ์–ด๋กœ ์„ค์ •ํ–ˆ๊ณ  gpt ๋ชจ๋ธ์€ gpt-3.5, turbo, gpt-4o๋ณด๋‹ค ํšจ์œจ์ด ์ข‹๋‹ค๋Š” gpt-4o-mini๋กœ ์„ค์ •ํ–ˆ๋‹ค.

๋ณธ์ธ์—๊ฒŒ ๋งž๋Š” ๋ชจ๋ธ์„ ์ฐพ์•„๋ณด๊ณ  ์ ์šฉํ•˜์ž.

์ž‘์„ฑ์ด ๋๋‚˜๋ฉด ํ•ด๋‹น ๋‚ด์šฉ์„ ๋ ˆํฌ์ง€ํ† ๋ฆฌ์— pushํ•˜๋ฉด ๋œ๋‹ค. ์ดˆ๊ธฐ 18$๋ฅผ ์ง€๊ธ‰ํ•ด์ฃผ๋Š”๋ฐ ์œ ํšจ๊ธฐ๊ฐ„์ด ์กด์žฌํ•˜๋Š” ๊ฒƒ ๊ฐ™๊ณ  ๋‚ด๊ฐ€ ๋“ฑ๋กํ•  ๋•Œ๋Š” ์œ ํšจ๊ธฐ๊ฐ„์ด ์ง€๋‚œ ์‹œ์ ์ด๋ผ ํ…Œ์ŠคํŠธ ๊ฒธ 10$๋ฅผ ๊ฒฐ์ œํ•ด์„œ ์‚ฌ์šฉํ–ˆ๋‹ค.

gpt ์‚ฌ์šฉ๋Ÿ‰ ํ™•์ธ ์ด๋ฏธ์ง€

์‚ฌ์šฉ๋Ÿ‰ ํ™•์ธ์€ ์—ฌ๊ธฐ์„œ ํ•˜๋ฉด ๋˜๊ณ , ๊ฒฐ์ œ์ˆ˜๋‹จ์„ ๋“ฑ๋กํ•œ๋‹ค๋ฉด ๋นŒ๋ง์„ ์„ค์ •ํ•ด์„œ ๊ณผ๊ธˆ์ด ๋ฐœ์ƒํ•˜์ง€ ์•Š๋„๋ก ์ฃผ์˜ํ•˜์ž.

4. ์ฝ”๋“œ๋ฆฌ๋ทฐ ํ›„๊ธฐ

Pull Request ์ฝ”๋“œ๋ฆฌ๋ทฐ ์ด๋ฏธ์ง€

์ „์ฒด์ฝ”๋“œ๋ฅผ ๋ถ„์„ํ•˜๋Š”๊ฒŒ ์•„๋‹ˆ๋ผ ๋ฆฌ๋ทฐ์–ด๊ฐ€ ๋ณ€๊ฒฝ์  ์™ธ์— ์•ž๋’ค ๋งฅ๋ฝ์„ ๋ชจ๋ฅด๋‹ˆ ์˜ฌ๋ฐ”๋ฅด์ง€ ์•Š์€ ๋ฆฌ๋ทฐ๋ฅผ ์ œ๊ณตํ•˜๊ธฐ๋„ ํ–ˆ๋Š”๋ฐ, ์ƒ๊ฐ์ง€ ๋ชปํ•œ

๋ถ€๋ถ„์—์„œ ์ฒดํฌ๋ฅผ ํ•ด์ค„ ๋•Œ๊ฐ€ ์žˆ์–ด์„œ ๊ฐœ์ธ ํ”„๋กœ์ ํŠธ์—๋Š” ์‚ฌ์šฉํ•  ๋ฒ• ํ–ˆ๋‹ค.

๋ฆฌ๋ทฐ์–ด๊ฐ€ ์—†๋Š” ๊ฒƒ ๋ณด๋‹ค๋Š” ์ข‹์•˜๋‹ค.