Repochat은 LLM (Large Language Model)을 사용하여 Github 리포지토리에 대한 대화에 참여하도록 설계된 대화식 챗봇 프로젝트입니다. 이를 통해 사용자는 의미있는 토론을하고 질문을하며 GitHub 저장소에서 관련 정보를 검색 할 수 있습니다. 이 readme는 로컬 컴퓨터에서 Repochat을 설정하고 사용하기위한 단계별 지침을 제공합니다.
Repochat은 뚜렷한 기능을 갖춘 2 개의 지점을 제공합니다.
Repochat의 메인 브랜치는 로컬 컴퓨터에서 전적으로 실행되도록 설계되었습니다. 이 버전의 Repochat은 외부 API 통화에 의존하지 않으며 데이터를 더 잘 제어 할 수 있습니다. 독립적 인 솔루션을 찾고 있다면 main 브랜치가 갈 길입니다.
Repochat의 클라우드 브랜치는 주로 모델 추론 및 스토리지를 위해 외부 서비스에 대한 API 호출에 의존합니다. 클라우드 기반 솔루션을 선호하고 지역 환경을 설정하고 싶지 않은 사람들에게 적합합니다.
Repochat을 시작하려면 다음을 수행해야합니다.
가상 환경을 만들고 로컬 컴퓨터에서 활성화하여 프로젝트 의존성을 분리하십시오.
python -m venv repochat-env
source repochat-env/bin/activateRepochat 저장소를 복제하고 프로젝트 디렉토리로 이동하십시오.
git clone https://github.com/pnkvalavala/repochat.git
cd repochat pip 사용하여 필요한 파이썬 패키지를 설치하십시오.
pip install -r requirements.txt"llama-cpp-python"라이브러리를 설치하십시오.
pip install llama-cpp-python llama.cpp 더 빠른 처리를 위해 여러 BLAS 백엔드를 지원합니다.
OpenBlas로 설치하려면 설치하기 전에 LLAMA_BLAS and LLAMA_BLAS_VENDOR 환경 변수를 설정하십시오.
CMAKE_ARGS= " -DLLAMA_BLAS=ON -DLLAMA_BLAS_VENDOR=OpenBLAS " pip install llama-cpp-python Cublas로 설치하려면 설치하기 전에 LLAMA_CUBLAS=1 환경 변수를 설정하십시오.
CMAKE_ARGS= " -DLLAMA_CUBLAS=on " pip install llama-cpp-python Clblast로 설치하려면 설치하기 전에 LLAMA_CLBLAST=1 환경 변수를 설정하십시오.
CMAKE_ARGS= " -DLLAMA_CLBLAST=on " pip install llama-cpp-python MPS (Metal)로 설치하려면 설치하기 전에 환경 변수 LLAMA_METAL=on 설정하십시오.
CMAKE_ARGS= " -DLLAMA_METAL=on " pip install llama-cpp-python AMD 카드에 대한 Hipblas / ROCM 지원으로 설치하려면 설치하기 전에 환경 변수 LLAMA_HIPBLAS=on 설정하십시오.
CMAKE_ARGS= " -DLLAMA_HIPBLAS=on " pip install llama-cpp-python하드웨어 가속에 대해 자세히 알아 보려면 Llama-CPP-Python의 공식 readme를 참조하십시오.
프로젝트 디렉토리에서 models 이라는 폴더를 만듭니다.
컴퓨터 기능을 기반으로 Hugging Face Model Hub에서 언어 모델을 다운로드하십시오. 다음 모델을 시작점으로 사용하는 것이 좋습니다 : TheBloke/Codellama-7B-Gguf. 포옹 얼굴에서 사용할 수있는 모델을 정량화하려면 llama.cpp의 지침을 따르십시오.
다운로드 된 모델 파일을 "모델"폴더로 복사하십시오.
"repochat"폴더에있는 models.py 파일을 열고 code_llama() 함수에서 다음과 같이 모델 파일 위치를 설정하십시오.
def code_llama ():
callbackmanager = CallbackManager ([ StreamingStdOutCallbackHandler ()])
llm = LlamaCpp (
model_path = "./models/codellama-7b.Q4_K_M.gguf" ,
n_ctx = 2048 ,
max_tokens = 200 ,
n_gpu_layers = 1 ,
f16_kv = True ,
callback_manager = callbackmanager ,
verbose = True ,
use_mlock = True
)
return llm 터미널을 열고 다음 명령을 실행하여 repochat 응용 프로그램을 시작하십시오.
streamlit run app.py이제 Github 리포지토리 링크를 입력 할 수 있습니다.
Repochat은 리포지토리에서 모든 파일을 가져와 "Cloned_Repo"라는 폴더에 저장합니다. 그런 다음 파일을 작은 청크로 나누고 문장 변압기 모델, 특히 문장 변환기/All-MPNet-Base-V2를 사용하여 임베딩을 계산합니다.
임베딩은 ChromADB라는 벡터 데이터베이스에 로컬로 저장됩니다.
Repochat을 사용하면 챗봇과 대화 할 수 있습니다. 질문을하거나 입력을 제공 할 수 있으며 챗봇은 벡터 데이터베이스에서 관련 문서를 검색합니다. 그런 다음 검색된 문서와 함께 입력을 응답을 생성하기위한 언어 모델로 보냅니다. 기본적으로 모델을 "Codellama-7B-Instruct"로 설정했지만 컴퓨터 속도에 따라 변경할 수 있으며 응답을 위해 13B 정량화 된 모델을 시도 할 수도 있습니다.
챗봇은 대화 중에 메모리를 유지하여 상황에 맞는 응답을 제공합니다.
문제가 발생하거나 제안이 있거나 버그를보고하려면 Repochat 저장소의 문제 섹션을 방문하여 새로운 문제를 만듭니다. 직면 한 문제에 대한 자세한 정보를 제공하면 최선을 다해 도와 드리겠습니다.
이 프로젝트는 Apache 라이센스 2.0에 따라 라이센스가 부여됩니다. 자세한 내용은 라이센스 파일을 참조하십시오. 이는 이전 라이센스의 변경 사항이며 새 라이센스의 이용 약관을 검토하는 것이 중요합니다.