ReadMeReady, LLM으로 코드 저장소를 분석하여 자동으로 README 문서를 생성하는 도구

ReadMeReady 소개

ReadMeReady는 코드 저장소의 구조와 내용을 분석하여, 자동으로 README 문서를 생성해주는 도구입니다. 문서화는 필수지만 시간과 노력이 많이 드는 작업으로, 많은 개발자들이 힘들어하는 부분 중 하나입니다. ReadMeReady는 이러한 문서 작성의 번거로움을 해결하는 것을 목표로 하는 프로젝트입니다.

ReadMeReady는 LLM을 사용하여 코드 저장소를 분석하여 자동으로 README 문서를 생성해줍니다. 기존의 LLM을 사용하는 자동 문서화 도구들은 주로 OpenAI의 API를 활용하여 비용이 많이 들거나, 커스터마이징이 어려운 경우가 많았습니다. 하지만 ReadMeReady는 오픈소스 LLM 모델을 활용하여 이러한 문제를 해결했습니다.

또한, 사용자가 직접 모델을 미세 조정(fine-tuning)할 수 있는 기능도 제공하여, 다양한 프로젝트에 맞춤형으로 적용할 수 있습니다. 이 도구는 특히 다음과 같은 경우에 유용합니다:

  • 기존 README가 없거나 부족한 오픈소스 프로젝트
  • 협업 중인 프로젝트에서 문서화가 필요한 경우
  • 다양한 리포지토리를 관리하며 일관된 문서화가 필요한 경우

ReadMeReady는 오픈소스 LLM 모델을 활용하여 비용 부담을 줄였으며, 사용자가 직접 모델을 미세 조정할 수 있는 기능을 제공하여 다양한 프로젝트에 맞춤형으로 적용할 수 있습니다.

ReadMeReady의 주요 기능

  • 자동 README 생성: 리포지토리의 구조와 내용을 분석하여, 기본적인 README 문서를 자동으로 생성합니다.
  • 다양한 LLM 모델 지원: LLAMA2, CodeLlama, Gemma 등 다양한 오픈소스 LLM 모델을 지원합니다.
  • 미세 조정 기능: 사용자가 직접 모델을 미세 조정하여, 프로젝트에 맞춤형으로 적용할 수 있습니다.
  • 평가 지표 제공: BLEU, BERT 등의 지표를 활용하여, 생성된 문서의 품질을 평가할 수 있습니다.
  • 명령줄 및 코드 인터페이스 제공: CLI와 Python API를 통해 다양한 방식으로 도구를 활용할 수 있습니다.

ReadMeReady 설치 및 사용 방법

설치

ReadMeReady는 Linux 및 Windows에서 사용할 수 있습니다:

# pip를 사용한 설치
pip install readme_ready
# 또는 소스에서 직접 설치
git clone https://github.com/souradipp76/ReadMeReady.git
cd ReadMeReady
make install

환경 변수 설정

OpenAI API를 사용하지 않고 오픈소스 모델만 사용할 경우, 다음과 같이 설정합니다:

export OPENAI_API_KEY=your_openai_api_key_here

사용 예시

사용 방법은 2가지로, CLI 또는 Python 코드로 실행하는 방법이 있습니다.

먼저, 명령줄에서 다음과 같이 실행할 수 있습니다:

readme_ready

또는 Python 코드에서 다음과 같이 사용할 수 있습니다:

from readme_ready.query import query
from readme_ready.index import index
from readme_ready.types import AutodocReadmeConfig, AutodocRepoConfig, AutodocUserConfig, LLMModels

model = LLMModels.LLAMA2_7B_CHAT_GPTQ

repo_config = AutodocRepoConfig(
    name="my_project",
    root="/path/to/repo",
    repository_url="https://github.com/user/my_project",
    output="/path/to/output",
    llms=[model],
    peft_model_path=None,
    ignore=[".*", "*.md", "node_modules"],
    content_type="docs",
    target_audience="developer",
    link_hosted=True,
    max_concurrent_calls=50,
    add_questions=False,
    device="auto",
)

user_config = AutodocUserConfig(llms=[model])
readme_config = AutodocReadmeConfig(
    headings="Description,Requirements,Installation,Usage,Contributing,License"
)

index.index(repo_config)
query.generate_readme(repo_config, user_config, readme_config)

모델 미세 조정

직접 모델을 미세 조정하려면, 다음과 같은 절차를 따르면 됩니다:
1. scripts/data.ipynb 노트북을 실행하여, 오픈소스 리포지토리에서 학습 데이터를 생성합니다.
2. scripts/fine-tuning-with-llama2-qlora.ipynb 노트북을 실행하여, 생성된 데이터를 활용하여 모델을 미세 조정합니다.

평가 지표

생성된 README 문서의 품질을 평가하기 위해, BLEU 및 BERT 점수를 활용할 수 있습니다. 이를 위해 scripts/run_validate.sh 스크립트를 실행하거나, scripts/validate.ipynb 노트북을 사용할 수 있습니다.

라이선스

ReadMeReady 프로젝트는 Apache-2.0 License로 공개 및 배포되고 있습니다. 상업적 사용이 가능하며, 소스 코드를 수정하거나 배포할 수 있지만, 변경사항을 명시해야 하고 원저작자에 대한 표시도 포함되어야 합니다.

:github: ReadMeReady GitHub 저장소




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

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

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

1개의 좋아요