gpt-code-assistant 는 언어 모델 (LLMs) 과 벡터 임베딩 (텍스트와 같은 객체를 벡터로 변환하는 기술) 을 사용하여 모든 코드베이스를 탐색, 쿼리 및 이해하기 위한 AI 기반 오픈소스 도구입니다.
LLM 기반 검색 및 검색: 언어 모델을 사용하여 효율적인 코드 검색, 검색 및 이해에 사용합니다.파일 시스템 통합: 어떤 코드베이스든 작동하도록 설계되었으며, 머신의 로컬 코드를 직접 처리하여 기존 워크플로우와의 원활한 통합을 가능하게 합니다.언어 독립적: 여러 프로그래밍 언어를 지원합니다.개인성 중심 설계: 질문이 제기되고 언어 모델이 관련 코드를 요청할 때만 코드 스니펫이 전송되어 개인성을 보장합니다.
(참고: 코드 스니펫은 OpenAI 와 공유됩니다)
향후 계획에는 로컬 모델을 지원하고 코드를 생성할 수 있는 기능이 포함됩니다.
pip install gpt-code-assistant
먼저 모든 파일을 인덱싱하기 위한 프로젝트를 생성합니다. 이 단계는 각 파일에 대한 임베딩을 생성하고 이를 로컬 데이터베이스에 저장하는 것을 포함합니다.
gpt-code-assistant create-project <project-name> <path-to-codebase>
gpt-code-assistant create-project gpt-code-assistant .
코드베이스의 목적에 대해 쿼리하려면 query 명령을 사용할 수 있습니다:
gpt-code-assistant query <project-name> "What does this codebase do?"
특정 파일, 예를 들어 analytics.py 에 대한 테스트를 생성하고 싶다면 정확도를 높이기 위해 파일 이름을 언급할 수 있습니다:
gpt-code-assistant query gpt-code-assistant "Can you generate a test for analytics.py?"
analytics와 같은 특정 모듈에 대한 일반적인 사용법 질문의 경우 키워드를 사용하여 코드베이스 전체에서 검색할 수 있습니다:
gpt-code-assistant query gpt-code-assistant "How do I use the analytics module?"
기억하세요, 파일 이름이나 특정 키워드를 언급하면 검색 정확도가 향상됩니다.
모든 프로젝트의 목록을 얻으려면:
gpt-code-assistant list-projects
프로젝트를 다시 인덱싱하고 최신 콘텐츠에 대한 임베딩을 업데이트하고 싶다면:
gpt-code-assistant refresh-project <project-name>
프로젝트 및 모든 데이터 (임베딩 포함) 를 삭제하고 싶다면:
gpt-code-assistant delete-project <project-name>
쿼리에 사용할 모델을 선택할 수 있습니다:
gpt-code-assistant select-model
기본값은 gpt-3.5-turbo-16k 입니다. 선택된 모델은 $HOME/.gpt-code-assistant/config.toml 에 저장됩니다.
도구는 아직 구성하지 않은 경우 OPENAI_API_KEY 를 구성하도록 프롬프트를 표시합니다.
코드베이스를 검색하기 위해 GPT-4 의 힘을 활용하고 싶지만, 프롬프트에 코드 스니펫을 수동으로 복사 및 붙여넣거나 OpenAI 를 제외한 다른 제 3 자 서비스에 코드를 보내고 싶지 않습니다. 이 도구는 GPT-4 가 코드베이스 내에서 가장 관련성 높은 코드 스니펫을 결정하게 함으로써 이러한 문제를 해결합니다. 또한 별도의 UI 없이 터미널에서 쿼리를 수행할 수 있게 합니다.
물어보고 싶은 질문 유형의 예시: