AutoCodeRover: GitHub 이슈의 자동화된 해결을 위한 Code Agent

:pytorch:PyTorchKR:kr:

  • AutoCodeRover는 GitHub 이슈(버그 수정 및 기능 추가)를 해결하기 위해 LLM과 분석 및 디버깅 기능을 결합하여 패치 위치를 우선적으로 정하는 완전 자동화된 접근 방식입니다. 기존의 AI 소프트웨어 엔지니어링 기술보다 효율성을 개선하여 실제 GitHub 이슈 300개 중 약 22%를 해결할 수 있습니다. 이 기술의 독특한 특징과 구조에 대해 자세히 알아보고, 개발 과정에서 어떻게 활용할 수 있는지 알아보시죠 :astonished:


소개

AutoCodeRover는 소스 코드의 구조를 인식하여 관련 코드 컨텍스트(메소드/클래스)를 검색하는 프로그램 구조 인식 코드 검색 API를 사용합니다. 또한, 테스트 스위트가 제공되면 통계적 결함 지역화를 통해 더 높은 수리율을 달성할 수 있습니다. 이 프로젝트는 실제 GitHub 이슈를 해결하는 것을 목표로 하고 있습니다.

Django-13933 이슈에 대한 AutoCodeRover(위)와 개발자(아래)의 패치 비교
Django-13933 이슈에 대한 AutoCodeRover(위)와 개발자(아래)의 패치 비교

AutoCodeRover는 기존의 다른 자동 프로그램 개선 도구와 비교하여, 프로그램의 구조를 인식하고 이를 기반으로 결함을 지역화하는 능력에서 차별화됩니다. 이를 통해 효율성을 높이고, 더 정확한 코드 수정을 제공합니다.

주요 기능

  • 프로그램 구조 인식: AutoCodeRover는 단순 문자열 일치를 통한 파일 검색 대신, 추상 구문 트리에서 관련 코드 컨텍스트를 검색합니다.

  • 테스트 케이스 활용: 테스트 케이스를 활용할 수 있을 때 AutoCodeRover는 통계적 결함 지역화를 수행하여 더 높은 수리율을 달성합니다.

사용 방법

AutoCodeRover는 두 단계로 작동합니다:

  1. 컨텍스트 검색: LLM은 코드 검색 API를 통해 코드베이스를 탐색하고 관련 컨텍스트를 수집합니다.
  2. 패치 생성: 수집된 컨텍스트를 기반으로 LLM이 패치를 작성합니다.

AutoCodeRover 저장소에서 제공하는 Docker 컨테이너에서 AutoCodeRover를 구동하는 방법은 다음과 같습니다:

docker build -f Dockerfile -t acr .
docker run -it acr

그 후, OPENAI_KEY 환경 변수를 설정하고, SWE-bench에서 작업을 설정하여 실행할 수 있습니다.

더 읽어보기

GitHub 저장소

AutoCodeRover 논문: AutoCodeRover: Autonomous Program Improvement

관련 글 더 읽어보기




이 글은 GPT 모델로 정리한 글을 바탕으로 한 것으로, 원문의 내용 또는 의도와 다르게 정리된 내용이 있을 수 있습니다. 관심있는 내용이시라면 원문도 함께 참고해주세요! 읽으시면서 어색하거나 잘못된 내용을 발견하시면 덧글로 알려주시기를 부탁드립니다. :hugs:

:pytorch:파이토치 한국 사용자 모임:kr:이 정리한 이 글이 유용하셨나요? 회원으로 가입하시면 주요 글들을 이메일:love_letter:로 보내드립니다! (기본은 Weekly지만 Daily로 변경도 가능합니다.)

:gift: 아래:arrow_lower_right:쪽에 좋아요:heart:를 눌러주시면 새로운 소식들을 정리하고 공유하는데 힘이 됩니다~ :star_struck: