github地址:https://github.com/chatchat-space/Langchain-Chatchat
github有时候访问不了,可以使用以下地址的来修改hosts访问
https://gitlab.com/ineo6/hosts/-/raw/master/hosts
或者用VPN工具也行。以下为Langchain-Chatchat官方文档基础上补充踩坑信息整理的文档,供参考:
基于 ChatGLM 等大语言模型与 Langchain 等应用框架实现,开源、可离线部署的检索增强生成(RAG)大模型知识库项目。
⚠️ 重要提示
0.2.10将会是0.2.x系列的最后一个版本,0.2.x系列版本将会停止更新和技术支持,全力研发具有更强应用性的 Langchain-Chatchat 0.3.x。 0.2.10 的后续 bug 修复将会直接推送到master分支,而不在进行版本更新。
目录
介绍
解决的痛点
快速上手
1. 环境配置
2. 模型下载
3. 初始化知识库和配置文件
4. 一键启动
5. 启动界面示例
联系我们
介绍
🤖️ 一种利用 langchain 思想实现的基于本地知识库的问答应用,目标期望建立一套对中文场景与开源模型支持友好、可离线运行的知识库问答解决方案。
💡 受 GanymedeNil 的项目 document.ai 和 AlexZhangji 创建的 ChatGLM-6B Pull Request 启发,建立了全流程可使用开源模型实现的本地知识库问答应用。本项目的最新版本中通过使用 FastChat 接入 Vicuna, Alpaca, LLaMA, Koala, RWKV 等模型,依托于 langchain 框架支持通过基于 FastAPI 提供的 API 调用服务,或使用基于 Streamlit 的 WebUI 进行操作。
✅ 依托于本项目支持的开源 LLM 与 Embedding 模型,本项目可实现全部使用开源模型离线私有部署。与此同时,本项目也支持 OpenAI GPT API 的调用,并将在后续持续扩充对各类模型及模型 API 的接入。
⛓️ 本项目实现原理如下图所示,过程包括加载文件 -> 读取文本 -> 文本分割 -> 文本向量化 -> 问句向量化 -> 在文本向量中匹配出与问句向量最相似的 top k个 -> 匹配出的文本作为上下文和问题一起添加到 prompt中 -> 提交给 LLM生成回答。
🚩 本项目未涉及微调、训练过程,但可利用微调或训练对本项目效果进行优化。
🌐 AutoDL 镜像 中 0.2.10
版本所使用代码已更新至本项目 v0.2.10 版本。
🐳 Docker 镜像 已经更新到 0.2.7 版本。
🌲 一行命令运行 Docker :
docker run -d --gpus all -p 80:8501 registry.cn-beijing.aliyuncs.com/chatchat/chatchat:0.2.7
🧩 本项目有一个非常完整的Wiki , README只是一个简单的介绍,_ 仅仅是入门教程,能够基础运行_。 如果你想要更深入的了解本项目,或者想对本项目做出贡献。请移步 Wiki 界面
解决的痛点
该项目是一个可以实现 __完全本地化__推理的知识库增强方案, 重点解决数据安全保护,私域化部署的企业痛点。 本开源方案采用Apache License,可以免费商用,无需付费。
我们支持市面上主流的本地大语言模型和Embedding模型,支持开源的本地向量数据库。 支持列表详见Wiki
快速上手
1. 环境配置
首先,确保你的机器安装了 Python 3.8 - 3.11 (我们强烈推荐使用 Python3.11)。
$ python --version
Python 3.11.7
pip install --upgrade python==3.11.7
接着,创建一个虚拟环境,并在虚拟环境内安装项目的依赖,以下命令均在gitbash的窗口中运行,gitbash内置git和类似linux的命令。
# 拉取仓库
$ git clone https://github.com/chatchat-space/Langchain-Chatchat.git
# 进入目录
$ cd Langchain-Chatchat
# 安装全部依赖
$ pip install -r requirements.txt
#如果没有使用VPN可以使用清华源安装
pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
$ pip install -r requirements_api.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
$ pip install -r requirements_webui.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
# 默认依赖包括基本运行环境(FAISS向量库)。如果要使用 milvus/pg_vector 等向量库,请将 requirements.txt 中相应依赖取消注释再安装。
请注意,LangChain-Chatchat 0.2.x 系列是针对 Langchain 0.0.x 系列版本的,如果你使用的是 Langchain 0.1.x 系列版本,需要降级您的Langchain版本。
2, 模型下载
如需在本地或离线环境下运行本项目,需要首先将项目所需的模型下载至本地,通常开源 LLM 与 Embedding 模型可以从 HuggingFace 下载。
以本项目中默认使用的 LLM 模型 THUDM/ChatGLM3-6B 与 Embedding 模型 BAAI/bge-large-zh 为例:
下载模型需要先安装 Git LFS ,然后运行
$ git lfs install
一定要在Langchain-Chatchat下面新建THUDM目录,cd THUDM命令运行后, 然后运行一下git命令。不然对于小白来说,有可能因为相对目录不对,从而找不到模型,下面这个命令还有一个坑就是下载的模型不全,还是要通过THUDM/chatglm3-6b · HF Mirror里面手动下载大文件才行。bge-large-zh-v1.5也是类似,官网写的ge-large-zh,但实际用的large-zh-v1.5,不过两个都下载也没关系,不太大。
$ git clone https://huggingface.co/THUDM/chatglm3-6b
git clone https://hf-mirror.com/THUDM/chatglm3-6b
$ git clone https://huggingface.co/BAAI/bge-large-zh
$ git clone BAAI/bge-large-zh · HF Mirror
git clone https://hf-mirror.com/BAAI/bge-large-zh-v1.5
#因为https://huggingface.co访问不了,所以使用https://hf-mirror.com/中的方式4来下载
huggingface-cli download --token hf_i* --resume-download THUDM/chatglm3-6b --local-dir chatglm3-6b
huggingface-cli download --token hf_* --resume-download BAAI/bge-large-zh --local-dir BAAI/bge-large-zh
#hf_*为https://huggingface.co网站里面使用VPN申请注册用户的token,如果需要可私信,不定期回复。
3. 初始化知识库和配置文件
按照下列方式初始化自己的知识库和简单的复制配置文件
$ python copy_config_example.py
#发现还需要安装BAAI/bge-large-zh-v1.5模型,于是继续git clone BAAI/bge-large-zh-v1.5 · HF Mirror,之后手动下载模型。
$ python init_database.py --recreate-vs
#上述命令安装失败,处理方法langchain安装报错ModuleNotFoundError: No module named ‘pwd‘_modulenotfounderror: no module named 'pwd-CSDN博客,先运行pip install langchain-community==0.0.19,然后再运行
4. 一键启动
按照以下命令启动项目
$ python startup.py -a
在运行上述命令之前碰到一个坑就是,找不到GPU,后来发现我是贪便宜买的笔记本显卡,驱动还只支持特定版本,所以只能安装CUDA12.2,而且安装的时候要把驱动都去掉。而且安装pytorch相应版本的时候需要重新pip安装12.2对应版本,之后才能找到GPU
# ROCM 5.6 (Linux only)
pip install torch==2.2.0 torchvision==0.17.0 torchaudio==2.2.0 --index-url https://download.pytorch.org/whl/rocm5.6
# CUDA 11.8
pip install torch==2.2.0 torchvision==0.17.0 torchaudio==2.2.0 --index-url https://download.pytorch.org/whl/cu118
# CUDA 12.1
pip install torch==2.2.0 torchvision==0.17.0 torchaudio==2.2.0 --index-url https://download.pytorch.org/whl/cu121
# CPU only
pip install torch==2.2.0 torchvision==0.17.0 torchaudio==2.2.0 --index-url https://download.pytorch.org/whl/cpu
5. 启动界面示例
如果正常启动,你将能看到以下界面