docAider를 활용한 코드 문서 자동 생성 및 검토 방법
요약
docAider는 Semantic Kernel과 Autogen을 활용하여 다중 에이전트 접근 방식으로 코드 문서를 자동 생성하고 검토하는 워크플로우를 제공합니다. 이 시스템은 통합된 프로세스를 통해 문서 업데이트 과정을 간소화하며, 개발자가 효율적으로 코드를 관리할 수 있도록 돕습니다.
핵심 포인트
- 다중 에이전트(multi-agent) 접근 방식으로 코드 문서를 자동 생성/검토
- Semantic Kernel과 Autogen을 활용하여 워크플로우 구현
- Docker 컨테이너와 환경 변수 설정을 통해 시스템 구동
- 자동 문서 업데이트 및 PR 기반의 지속적인 문서 관리 지원
docAider는 Semantic Kernel과 Autogen을 활용하여 다중 에이전트(multi-agent) 접근 방식을 통해 저장소의 코드 문서를 생성하고 검토하는 과정을 자동화합니다. 또한, 통합 워크플로우를 통해 docAider는 문서 업데이트 프로세스를 간소화하여 효율적이고 사용자 친화적인 경험을 보장합니다.
다음 Dockerfile을 저장소에 추가하십시오:
version: "3.8"
services:
docAider:
...
저장소에 다음 변수들로 .env 파일을 생성하십시오:
GLOBAL_LLM_SERVICE="AzureOpenAI"
CHAT_DEPLOYMENT_NAME="GPT-4"
AZURE_OPENAI_API_KEY="YOUR_AZURE_OPENAI_API_KEY"
...
docAider Docker 이미지를 활성화하고 계속 실행 상태를 유지하려면(종료하지 마십시오) 다음 명령어를 사용하십시오:
docker compose up --build
이 명령어는 docAider 컨테이너를 빌드하고 시작합니다. 포그라운드에서 계속 실행되므로 필요에 따라 상호 작용할 수 있습니다.
저장소의 문서를 생성하려면 다음 명령어를 실행하십시오. 이 과정은 일반적으로 초기 문서 생성을 위해 한 번 수행됩니다:
docker exec docAider python3 /docAider/repo_documentation/multi_agent_app.py
실행 중에는 터미널 출력에서 여러 에이전트 간의 상호 작용을 관찰할 수 있습니다. CodeContextAgent는 코드 컨텍스트에 대한 설명을 제공하고, documentation_generation_agent는 지정된 코드 파일에 대한 문서를 생성하며, review_agent는 생성된 문서를 검토하고 개선합니다. agent_manager는 이러한 에이전트들 간의 상호 작용을 오케스트레이션하여 컨텍스트 설명부터 문서 생성 및 검토까지 원활한 워크플로우를 보장합니다.
생성된 문서는 docs_output 폴더에서 찾을 수 있습니다. prompt_debug 폴더에는 각 소스 코드 파일에 대한 프롬프트가 포함되어 있으며, 이는 에이전트들에게 공급됩니다.
또한, call_graph.json, cache.json, 그리고 graph.png 파일은 code2flow 프로젝트에 의해 생성됩니다. 이 파일들은 다음을 돕습니다:
- 스파게티 코드 정리하기
- 고아 함수(orphaned functions) 식별
- 신규 개발자 온보딩 지원
자동 문서 업데이트 워크플로우를 설정하려면 (update-docs.yml 및 update-comments.yml)을 실행합니다:
docker exec docAider python3 /docAider/setup_workflows.py
참고: 생성된 문서와 워크플로우는 반드시 수동으로 저장소(repository), 가급적 main 브랜치로 푸시해야 합니다.
"GPT"라는 이름의 환경을 만들고, .env 파일에서 변수들을 비밀값(secrets)으로 추가합니다 (GITHUB_ACCESS_TOKEN 및 ROOT_FOLDER 제외). 이는 저장소 설정(Settings) > Security > Secrets 및 Variables > Actions에서 수행할 수 있습니다.
이 워크플로우는 main 브랜치에 대해 풀 리퀘스트(pull request)가 열릴 때 트리거되며, 풀 리퀘스트 브랜치와 main 브랜치 간의 변경 사항을 기반으로 문서를 업데이트합니다.
초기 업데이트 결과가 만족스럽지 않을 경우 이 워크플로우를 사용하여 문서를 추가로 수정할 수 있습니다. 다음 형식으로 댓글을 달아 변경을 요청할 수 있습니다:
Documentation {file_path}: {comment}
file_path: 문서화를 업데이트하려는 소스 코드 파일의 경로입니다.
comment: 에이전트가 문서를 업데이트하는 데 도움을 줄 프롬프트 또는 지침입니다.
이 프로젝트는 MIT 라이선스가 적용된 code2flow 프로젝트의 커스텀 포크(custom fork)에서 가져온 기능과 개선 사항을 포함하고 있습니다. code2flow 프로젝트는 동적 프로그래밍 언어에 대한 콜 그래프(call graphs)를 생성하며, 여기에서 확인할 수 있습니다. 이 포크는 Python 전용으로 맞춤 제작되었습니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 GitHub Codex tools의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기