Codebase를 의미 적으로 검색하거나 CLI에서 채팅하십시오. 벡터 데이터베이스를 최신 코드 변경에 최신 상태로 유지하십시오. Dataleaks없이 100% 로컬 지원.
Langchain, Treesitter, 문장 전환 자, 강사 엠 베딩, Faiss, Lama.cpp, Ollama, Streamlit으로 제작되었습니다.
메모
코드가 잘 문서화되면 더 나은 결과가있을 것입니다. 코드 문서 생성에 대한 Doc-Comments-IA를 고려할 수 있습니다.
codeqai search

codeqai chat

codeqai sync
codeqai app

메모
처음에는 저장소가 구성된 임베딩 모델로 인덱싱됩니다.
pipx 사용하여 고립 된 환경에 설치하십시오.
pipx install codeqai
PIPX가 Python> = 3.9, <3.12를 사용하고 있는지 확인하십시오.
PIPX를 사용하여 Python 버전을 명시 적으로 지정하려면 원하는 Python 버전 (예 : pyenv shell 3.XX )을 활성화하고 다음과 함께 설치하십시오.
pipx install codeqai --python $(which python)
PIPX를 사용하여 여전히 문제에 직면하고 있다면 소스에서 PYPI를 통해 직접 설치할 수도 있습니다.
pip install codeqai
그러나 PIPX를 사용하여 종속성을 위해 고립 된 환경에서 혜택을받는 것이 좋습니다.
설치 중에 알려진 문제의 솔루션은 문제 해결 섹션을 방문하십시오.
메모
일부 패키지는 기본적으로 설치되지 않습니다. 처음에는 faiss-cpu 또는 faiss-gpu 를 설치하라는 요청을받습니다. 하드웨어가 CUDA 7.5+를 지원하는 경우 FAISS-GPU가 권장됩니다. 로컬 임베딩 및 LLM이 사용되는 경우 문장 변환 자, 강사 또는 LLAMA.CPP를 설치하도록 추가 요청을받습니다.
처음 사용하거나 실행하여
codeqai configure
구성 프로세스가 시작되어 임베딩 및 LLM을 선택할 수 있습니다.
중요한
나중에 구성에서 임베딩 모델을 변경하려면 캐시 된 파일을 ~/.cache/codeqai 로 삭제하십시오. 그 후 벡터 스토어 파일은 최근 구성된 임베딩 모델로 다시 작성됩니다. 모델이 다르면 유사성 검색이 작동하지 않기 때문에 이것은 필요합니다.
원격 모델을 사용하는 경우 다음 환경 변수가 필요합니다. 필요한 환경 변수가 이미 설정된 경우 사용됩니다. 그렇지 않으면 ~/.config/codeqai/.env 에 저장된 다음에 입력하라는 메시지가 표시됩니다.
export OPENAI_API_KEY = " your OpenAI api key " export OPENAI_API_TYPE = " azure "
export AZURE_OPENAI_ENDPOINT = " https://<your-endpoint>.openai.azure.com/ "
export OPENAI_API_KEY = " your Azure OpenAI api key "
export OPENAI_API_VERSION = " 2023-05-15 " export ANTHROPIC_API_KEY= " your Anthropic api key " 메모
나중에 환경 변수를 변경하려면 ~/.config/codeqai/.env 를 수동으로 업데이트하십시오.
전체 git repo는 Treesitter와 구문 분석하여 문서로 모든 방법을 추출하고 문장 변환기, 강사-엠 베드 딩 또는 OpenAI의 텍스트-엠 베드 딩 -DADA-002로 로컬 FAISS 벡터 데이터베이스에 저장됩니다.
벡터 데이터베이스는 시스템의 파일에 저장되며 추가 사용 후 나중에 다시로드됩니다. 그 후 임베딩 모델을 기반으로 코드베이스에서 시맨틱 검색을 수행 할 수 있습니다.
Codebase와 함께 로컬 Llama.cpp 또는 Ollama와 채팅하는 것은 원하는 모델을 지정하여 사용됩니다. 최근 저장소의 변경 사항을 동기화하기 위해 벡터 ID와 함께 각 파일의 GIT 커밋 해시가 캐시에 저장됩니다. 벡터 데이터베이스를 최신 GIT 상태와 동기화 할 때 캐시 된 커밋 해시는 리포지토리의 각 파일의 현재 git 해시와 비교됩니다. GIT 커밋 해시가 다른 경우, 관련 벡터는 데이터베이스에서 삭제되고 벡터 임베딩을 재현 한 후 다시 삽입됩니다. llama.cpp를 사용하여 지정된 모델을 미리 시스템에서 사용할 수 있어야합니다. Ollama를 사용하여 원하는 모델이있는 Ollama 컨테이너는 포트 11434에서 사전에 로컬로 실행해야합니다. 또한 Openai 또는 Azure-Openai는 원격 채팅 모델에 사용될 수 있습니다.
huggingface-cli 설치하고 모델 허브에서 원하는 모델을 다운로드하십시오. 예를 들어
huggingface-cli download TheBloke/CodeLlama-13B-Python-GGUF codellama-13b-python.Q5_K_M.gguf
codellama-13b-python.Q5_K_M 모델을 다운로드합니다. 다운로드가 완료된 후 모델 .gguf 절대 경로는 콘솔에 인쇄됩니다.
중요한
llama.cpp 호환 모델은 .gguf 형식이어야합니다.
pipx 와 함께 설치하는 동안 pip failed to build package: tiktoken
Some possibly relevant errors from pip install:
error: subprocess-exited-with-error
error: can't find Rust compiler
Rust 컴파일러가 여기에서 시스템에 설치되어 있는지 확인하십시오.
faiss 설치 중 × Building wheel for faiss-cpu (pyproject.toml) did not run successfully.
│ exit code: 1
╰─> [12 lines of output]
running bdist_wheel
...
note: This error originates from a subprocess, and is likely not a problem with pip.
ERROR: Failed building wheel for faiss-cpu
Failed to build faiss-cpu
ERROR: Could not build wheels for faiss-cpu, which is required to install pyproject.toml-based projects
Python <3.12로 CodeQai를 설치해야합니다. Python 3.12에는 아직 FAISS 휠이 없습니다.
기능이 없거나 버그에 직면 한 경우 주저하지 말고 문제를 열거 나 PR을 올리십시오. 모든 종류의 기여는 높이 평가됩니다!
개발 모드에서 프로젝트를 구축하고 실행하려면 conda , conda-lock 또는 poetry 설치해야합니다.
conda Run을 사용하여 :
conda env create -f environment.yml -n codeqai
또는 conda-lock 실행을 사용하여 :
conda-lock install --name codeqai conda-<YOUR_PLATFORM>.lock
환경을 활성화하고 의존성을 설치하십시오.
conda activate codeqai && poetry install
poetry 실행을 사용하여 :
poetry install && poetry shell
예를 들어 개발 환경 내에서 codeqai chat 실행하십시오.
poetry run codeqai chat
다음과 함께 테스트 실행 :
poetry run pytest -s -vv