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存储库链接。
Repochat将获取存储库中的所有文件,并将它们存储在名为“ Cloned_repo”的文件夹中。然后,它将将文件分为较小的块,并使用句子变形金刚模型,特别是句子转换器/全麦内特 - 基本v2来计算其嵌入。
嵌入在当地存储在称为Chromadb的向量数据库中。
Repochat允许您与聊天机器人进行对话。您可以提出问题或提供输入,聊天机器人将从矢量数据库中检索相关文档。然后,它将您的输入以及所检索的文档发送到用于生成响应的语言模型。默认情况下,我将模型设置为“ Codellama-7b-Instruct”,但是您可以根据计算机的速度更改它,甚至可以尝试使用13B量化的模型进行响应。
聊天机器人在对话期间保留内存,以提供上下文相关的响应。
如果您遇到任何问题,提出建议或想报告错误,请访问仓库存储库的问题部分并创建一个新问题。提供有关您面临的问题的详细信息,我会尽力为您提供帮助。
该项目是根据Apache许可证2.0许可的。有关详细信息,请参阅许可证文件。请注意,这是从以前的许可证中进行的更改,重要的是要查看新许可证的条款和条件。