Repochat是一個交互式聊天機器人項目,旨在使用大語言模型(LLM)進行有關GitHub存儲庫的對話。它允許用戶進行有意義的討論,提出問題並從GitHub存儲庫中檢索相關信息。此讀數提供了逐步說明,用於在本地計算機上設置和使用propochat。
Repochat提供了2個具有不同功能的分支:
propochat的主要分支旨在完全在您的本地機器上運行。此版本的popochat不依賴外部API調用,並且可以更好地控制您的數據。如果您正在尋找一個獨立的解決方案,則main分支是要走的路。
Ropochat的雲分支主要依賴於對模型推理和存儲的外部服務的API調用。它非常適合那些喜歡基於雲的解決方案並且不想設置本地環境的人。
為了開始使用propochat,您需要遵循以下安裝步驟:
創建一個虛擬環境並在本地計算機上激活以隔離項目的依賴性。
python -m venv repochat-env
source repochat-env/bin/activate克隆倉庫存儲庫並導航到項目目錄。
git clone https://github.com/pnkvalavala/repochat.git
cd repochat使用pip安裝所需的Python軟件包。
pip install -r requirements.txt安裝“ Llama-CPP-Python”庫。
pip install llama-cpp-pythonllama.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)安裝,請在安裝之前設置LLAMA_METAL=on環境變量上:
CMAKE_ARGS= " -DLLAMA_METAL=on " pip install llama-cpp-python要使用Hipblas / ROCM支持AMD卡,請在安裝之前設置LLAMA_HIPBLAS=on環境變量上:
CMAKE_ARGS= " -DLLAMA_HIPBLAS=on " pip install llama-cpp-python要了解有關硬件加速度的更多信息,請參閱Llama-CPP-Python的官方讀數
在項目目錄中創建一個名為models的文件夾。
根據您的計算機功能從擁抱面部模型中心下載語言模型。建議使用以下模型作為起點:thebloke/codellama-7b-gguf。如果您想量化在擁抱臉上可用的模型,請按照Llama.cpp的說明進行操作
將下載的模型文件複製到“型號”文件夾。
打開位於“ propochat”文件夾中的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存儲庫鏈接。
propochat將從存儲庫中獲取所有文件,並將它們存儲在名為“ Cloned_repo”的文件夾中。然後,它將將文件分為較小的塊,並使用句子變形金剛模型,特別是句子轉換器/全麥內特 - 基本v2來計算其嵌入。
嵌入在當地存儲在稱為Chromadb的向量數據庫中。
Repochat允許您與聊天機器人進行對話。您可以提出問題或提供輸入,聊天機器人將從矢量數據庫中檢索相關文檔。然後,它將您的輸入以及所檢索的文檔發送到用於生成響應的語言模型。默認情況下,我將模型設置為“ Codellama-7b-Instruct”,但是您可以根據計算機的速度更改它,甚至可以嘗試使用13B量化的模型進行響應。
聊天機器人在對話期間保留內存,以提供上下文相關的響應。
如果您遇到任何問題,提出建議或想報告錯誤,請訪問倉庫存儲庫的問題部分並創建一個新問題。提供有關您面臨的問題的詳細信息,我會盡力為您提供幫助。
該項目是根據Apache許可證2.0許可的。有關詳細信息,請參閱許可證文件。請注意,這是從以前的許可證中進行的更改,重要的是要查看新許可證的條款和條件。