Python으로 Python을 자동 생성하는 'Recursive Coder' 기법

카테고리

프로그래밍/소프트웨어 개발

서브카테고리

인공지능

대상자

  • Python 개발자
  • 난이도: 중간~고급 (AI 통합, 오류 처리, 반복적 스크립트 개선 기법 포함)

핵심 요약

  • Recursive Coder: GPT와 exec()을 활용해 Python 스크립트를 생성 → 실행 → 오류 수정하는 반복 프로세스를 구현
  • 핵심 기능:
  • recursive_generator 함수: openai.ChatCompletion.create() API를 통해 코드 생성 및 오류 수정
  • AI 기반 오류 복구: 예외 발생 시 GPT에 오류 메시지 전달 후 자동 수정
  • 실제 적용 사례:
  • .jpg 파일의 수정 날짜로 이름 변경, PDF 파일 정리 등 84%의 스크립트가 1~3회 재시도 후 성공

섹션별 세부 요약

  1. 문제 정의
  • * 개발자들이 반복적인 스크립트 작성 시 발생하는 5가지 이상의 오류 (의존성 문제, 로직 오류 등)
  • * GPT 기반 코드 생성의 한계: 첫 실행 시 오류 발생 빈도 높음
  1. Recursive Coder 구현
  • * 5단계 프로세스:
  1. 사용자 입력 받기 (예: "파일 이름을 날짜로 변경")
  2. GPT로 Python 코드 생성
  3. exec()을 통해 실행
  4. 오류 발생 시 GPT로 수정 요청
  5. 성공 시 .py 파일 저장
  • * 핵심 코드:

```python

def recursive_generator(prompt, retries=3):

for i in range(retries):

res = openai.ChatCompletion.create(model="gpt-4", messages=messages)

code = res['choices'][0]['message']['content']

try:

exec(code, {})

return code

except Exception as e:

prompt = f"The code failed with this error:\n{e}\nPlease correct it:\n{code}"

```

  1. 실제 사례 분석
  • * 성공 사례:
  • .jpg 파일 이름 변경 (1회 시도 성공)
  • PDF 파일 정리 (1회 시도 성공)
  • * 실패 사례:
  • * 12% 수동 수정 필요 (예: os 모듈 누락, 로직 오류)
  • * 4% 불안전한 파일 작업 (예: 삭제 없이 파일 삭제)
  1. 확장 기능
  • * CLI 인터페이스 추가: argparse로 명령어 입력 지원
  • * 로그 기능: rich.console로 성공/실패 상태 표시
  • * 사용 예시:

```bash

python coder.py "Organize all mp3 files into folders by artist"

```

  1. 안전성 고려사항
  • * 사전 샌드박스 환경 구축:
  • * 임시 폴더 또는 Docker 컨테이너 사용
  • * AI 생성 코드 실행 시 주의:
  • * 권한 위험, 파일 삭제 등 잠재적 위험 요소

결론

  • Recursive CoderAI 기반 코드 생성 + 반복적 오류 수정을 통해 개발자 시간을 3~4시간/주로 절약
  • 실무 팁:
  • * 샌드박스 환경에서 AI 생성 코드 실행
  • * recursive_generator 함수의 retries 매개변수를 3회로 기본 설정
  • * 사용자 요구사항을 명확한 목표로 표현 (예: "파일 정리", "스크래핑")
  • 최종 결과:
  • * "코드를 작성하는 것이 아니라 목표를 명시하는 것"으로 개발 방식 전환