以下文章翻译自locatGPT
介绍
localGPT是一个开源项目,基于本地文库进行检索问答,允许在不泄漏隐私数据的情况下与本机文档进行对话。一切都在本地运行,你可以确信没有数据离开你的电脑。
此项目的灵感来自于privateGPT
特性
- 最高隐私:您的数据保留在您的计算机上,确保100%的安全。
- 多功能模型支持:无缝集成各种开源模型,包括HF、GPTQ、GGML和GGUF。
- 多样化的Embeddings:从一系列开源Embeddings中进行选择。
- LLM重用:下载后,无需重复下载即可重用LLM。
- 会话历史:记住你以前的对话(可以上下文会话)。
- API:LocalGPT有一个API,您可以使用它来构建RAG应用程序。
- 图形界面:LocalGPT带有两个GUI,一个使用API,另一个是独立的(基于streamlit)。
- GPU、CPU和MPS支持:开箱即用支持多个平台,使用CUDA、CPU或MPS等与您的数据聊天!
Quick Start
创建环境
使用git下载项目
git clone https://github.com/PromtEngineer/localGPT.git
使用conda用来虚拟环境管理,创建并且激活一个新的虚拟环境。
conda create -n localGPT python=3.10.0
conda activate localGPT
安装依赖
pip install -r requirements.txt
安装 LLAMA-CPP
LocalGPT将LlamaCpp-Python用于GGML(llama-cpp-python <=0.1.76)和GGUF(llama-cpp-python >=0.1.83)模型。
如果要将BLAS或Metal与llama cpp一起使用,需要设置一些参数:
对英伟达GPU的支持,使用cuBLAS
# Example: cuBLAS
CMAKE_ARGS="-DLLAMA_CUBLAS=on" FORCE_CMAKE=1 pip install llama-cpp-python==0.1.83 --no-cache-dir
对Apple Metal (M1/M2)的支持,使用
# Example: METAL
CMAKE_ARGS="-DLLAMA_METAL=on" FORCE_CMAKE=1 pip install llama-cpp-python==0.1.83 --no-cache-dir
更多细节,请参考llama-cpp。
引入自己的数据
把你的文件放入SOURCE_DOCUMENTS文件夹,也可以放多个文件夹到SOURCE_DOCUMENTS,localGPT将递归的读取文件。
支持的文件格式
- md
- py
- csv
- xls
- xlsx
- docx
- doc
引入数据
cuda方式运行
python ingest.py
看到如下信息,则表示成功注入
cpu方式运行,配置device_type
python ingest.py --device_type cpu
M1/M2方式运行:
python ingest.py --device_type mps
Run
默认cuda运行,cpu和M1/M2可以像ingest.py一样,设置device_type。
python run_localGPT.py
这将加载引入的向量和embedding模型,接收到系统提示Enter a query,就可以和自己的数据对话了。
改变模型(默认使用TheBloke/Llama-2-7b-Chat-GGUF模型),请参考locatGPT
运行图形界面
- 打开终端,激活使用requirements.txt安装过依赖的python环境。
- 进入
/LOCALGPT
文件夹 - 运行
python run_localGPT_API.py
- 等待加载,直到终端打印
INFO:werkzeug:Press CTRL+C to quit
。 - 打开第二个终端,并且激活相同的python环境。
- 进入
/LOCALGPT/localGPTUI
文件夹。 - 运行
python localGPTUI.py
。 - 在浏览器打开
http://localhost:5111/
。