github地址
https://github.com/arc53/DocsGPT
官网地址
https://docsgpt.arc53.com/
DocsGPT是一种开源解决方案,可简化在项目文档中查找信息的过程。
通过集成强大的GPT模型,开发人员可以轻松提出有关项目的问题并获得准确的答案。
告别耗时的手动搜索,让DocsGPT帮助快速找到所需的信息尝试一下,看看它如何彻底改变项目文档体验。
官方安装文档
https://docs.docsgpt.co.uk/Deploying/Quickstart
特别注意
-
网络如果能访问谷歌最好,如果不能访问但是中间遇到卡住的可以更换docker镜像源为阿里等(尽可能是千兆网速,如果下载几M/S,半天就没了)
-
基础安装和启动要有30GB以上的磁盘空间预留,如需下载本地模型,则需要基础镜像30GB+15GB(llama.cpp),至少50GB的磁盘空间预留(小心磁盘不足)
-
建议有显卡以及已经安装了对应的显卡驱动(如果使用OpenAI的Key,这条可以略过)
-
准备好前置环境,如python v3.10等
本文环境为ubuntu server 22.04,python 3.10.9
拉取仓库
git clone https://github.com/arc53/DocsGPT.git
根目录下创建一个.env配置文件
文件内容填写API_KEY(OpenAI Key)(如果你有Key的话)
API_KEY=123456
VITE_API_STREAMING=true
执行以下命令,构建镜像并启动
docker-compose build && docker-compose up
看到如下提示
说明服务启动成功
开放端口 5173
sudo ufw allow 5173
访问ip:端口
进入到首页
这个问题是由于docker-compose.yml配置文件映射的项目ip不对
因为docker有自己的network,所以我们需要把localhost改为部署docsgpt这台服务器的ip地址
参考文档
https://github.com/arc53/DocsGPT/issues/215
修改VITE_API_HOST地址为ip地址
同时服务器防火墙开发对应的端口,以便docker服务可以访问到
sudo ufw allow 7091
ctrl+c关闭当前docker-compose服务
然后重新启动docker-compose服务
docker-compose up
重新打开网页
这个时候可以看到下拉选项了
本文选择默认,点击保存
发送消息
提示出错
查看终端
提示OpenAi的Key不对
如何改为使用本文模型
参考官方文档
https://docs.docsgpt.co.uk/Guides/How-to-use-different-LLM
官方默认使用OpenAI,如需要指定使用本地LLM,则需要修改.env文件
参考下列表格
模型 | 信息 |
---|---|
Arc53/docsgpt-7b-falcon | 需要1个A10G GPU |
Arc53/docsgpt-14b | 需要2个A10G GPU |
llama.cpp | 7B模型需要大约4GB,13B模型需要大约8GB,30B模型需要大约16GB,64B模型需要大约32GB |
OpenAI | GPT-3模型有1750亿个参数,内存大小超过350GB |
以本文的配置而言
只能选择llama.cpp尝试一下
下载模型
https://d3dg1063dc54p9.cloudfront.net/models/docsgpt-7b-f16.gguf
把模型放进去
./setup.sh
ModuleNotFoundError: No module named 'dotenv'
pip install python-dotenv
ModuleNotFoundError: No module named 'celery'
pip install celery
持续报错…
ModuleNotFoundError: No module named 'pymongo'
继续安装
pip install pymongo
继续报错…….
ModuleNotFoundError: No module named 'langchain'
继续安装…
pip install langchain
继续报错
ModuleNotFoundError: No module named 'tiktoken'
继续安装
pip install tiktoken
继续报错
ModuleNotFoundError: No module named 'elasticsearch'
继续安装
pip install elasticsearch
继续报错
ModuleNotFoundError: No module named 'retry'
继续安装
pip install retry
继续报错
AttributeError: 'NoneType' object has no attribute 'Redis'
继续安装
pip install redis
启动成功
使用setup.sh后,它会自动修改.env配置文件
LLM_NAME=llama.cpp
VITE_API_STREAMING=true
EMBEDDINGS_NAME=huggingface_sentence-transformers/all-mpnet-base-v2
访问首页
发送消息
报错
安装
pip install sentence-transformers
上传文档
报错
ImportError: Could not import faiss python package. Please install it with `pip install faiss-gpu` (for CUDA supported GPU) or `pip install faiss-cpu` (depending on Python version).
如果你的机器支持CUDA(即你有NVIDIA的GPU),你可以使用以下命令安装:
pip install faiss-gpu
如果你的机器不支持CUDA(即你没有NVIDIA的GPU),或者你只想在CPU上运行,你可以使用以下命令安装:
pip install faiss-cpu
报错
ModuleNotFoundError: No module named 'llama_cpp'
安装
pip install llama-cpp-python
再次发送请求成功
同步可以看到后台的请求解析
本文没有使用OpenAI Key
如果有的话,理论上不需要解决一堆本地模型解析遇到的依赖错误问题
使用本地模型 setup.sh选1,记得把docker-compose-local.yaml文件中的localhost改为你服务器的ip地址
不然在另一个客户端访问时会报localhost跨域,找不到接口
另外每次ctrl c或者z关掉setup.sh的进程时
实际上7091后端和5173的端口还一直被占用着
需要及时杀掉进程
如下图
查看进程pid
lsof -i:端口号
杀掉进程
kill -9 id
可以看到文档已经上传成功
但是目前还不知道怎么使用,发送消息,可能文档较少或者没有经过预训练
没有知识库的对答
目前本地部署成功,使用本地模型成功(Llama)
上传test.txt文档成功,使用该文档对话成功
建议
部署项目时,先试用python虚拟环境(创建python3.10环境以及依赖包隔离,不影响宿主机环境)(方便中途遇到问题,可以随时切换新的python环境尝试)
多看官方文档,有问题可以问ChatGpt和New Bing Chat
END.
觉得本文还行,不妨顺手点赞和收藏,下期见。
推荐阅读
<<HomeLab迷你小主机(x86):Docker部署自托管笔记(仅私有化部署)为知笔记WizNote>>
<<HomeLab迷你小主机(x86):Docker部署开源云手机(安卓)redroid>>
☕ 朋友,都看到这了,确定不关注一下么? 👇