【大模型实战项目】基于Langchain与ChatGLM等语言模型的本地知识库问答项目(附教程)
基于ChatGLM等大语言模型与Langchain等应用框架实现,开源、可离线部署的搜索增强生成(RAG)大模型知识库项目。
一种利用langchain思想实现的基于本地知识库的问答应用,目标是建立一套针对中文场景与开源模型支持模式、可离线运行的知识库问答解决方案。
💡 受GanymedeNil的项目document.ai和AlexZhangji创建了ChatGLM-6B Pull Request指令,建立了全流程可使用开源模型实现的本地知识库问答应用。本项目的最新版本中通过使用FastChat接入Vicuna、Alpaca、 LLaMA、Koala、RWKV 等模型,依托于langchain框架通过支持基于FastAPI提供的API调用服务,或使用基于Streamlit的WebUI进行操作。
✅ 依托于本项目支持的LLM与嵌入模型,项目可实现全部使用开源模型离线部署。同时,本项目也支持OpenAI GPT API的调用,附加在后续持续补充对开源模型及模型 API 的接入。
👉CSDN大礼包🎁:此项目已打包《基于Langchain与ChatGLM等语言模型的本地知识库问答》免费分享(安全链接,放心点击)👈
⛓️本项目实现原理如下图所示,流程包括加载文件 -> 读取文本 -> 文本分割 -> 文本支撑化 -> 问句支撑化 -> 在文本支撑中匹配出与问句支撑最相似的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只是一个简单的介绍,_ 针对入门教程,能够基础运行_。如果你想更深入的了解本项目,或者想对本项目做出贡献。
解决的痛点
该项目是一个可以实现__本地化__推理的知识库增强方案,重点解决数据完全安全保护、私有域化部署的企业痛点。本开源方案采用Apache License,可以免费使用,无需付费。
我们支持主流的本地大语言模型和嵌入模型,支持开源的本地管理数据库。
快速上手
1.环境配置
- 首先,确保你的机器安装了Python 3.8 - 3.11(我们强烈推荐使用Python3.11)。
$ python --version
Python 3.11.7
接下来,创建一个虚拟环境,并在虚拟环境内安装项目的依赖项
拉取仓库
# 拉取仓库
$ git clone https://github.com/chatchat-space/Langchain-Chatchat.git# 进入目录
$ cd Langchain-Chatchat# 安装全部依赖
$ pip install -r requirements.txt
$ pip install -r requirements_api.txt
$ pip install -r requirements_webui.txt # 默认依赖包括基本运行环境(FAISS向量库)。如果要使用 milvus/pg_vector 等向量库,请将 requirements.txt 中相应依赖取消注释再安装。
请注意,LangChain-Chachat0.2.x系列是针对Langchain0.0.x系列版本的,如果您使用的是Langchain0.1.x 系列版本,需要降级您的Langchain版本。
2, 模型下载
若要在本地或离线环境下运行本项目,需要首先将项目所需的模型下载至本地,通常是开源LLM 与 Embedding 模型可以从HuggingFace下载。
以本项目中默认使用的LLM模型THUDM/ChatGLM3-6B与Embedding模型BAAI/bge-large-zh为例:
下载模型需要先安装 Git LFS ,然后运行
$ git lfs install
$ git clone https://huggingface.co/THUDM/chatglm3-6b
$ git clone https://huggingface.co/BAAI/bge-large-zh
3.初始化知识库和配置文件
按照以下方式初始化自己的知识库和简单的复制配置文件
$ python copy_config_example.py
$ python init_database.py --recreate-vs
4. 一键启动
按照以下命令启动项目
$ python startup.py -a
5. 启动界面示例
如果正常启动,您将看到以下界面
- FastAPI 文档 界面
- Web UI启动界面示例:
- 1.Web UI界面:
Web UI知识库管理页面:
项目
2023年4月:Langchain-ChatGLM 0.1.0发布,支持基于ChatGLM-6B模型的本地知识库问答。
2023年8月:Langchain-ChatGLM改名为Langchain-Chatchat,0.2.0发布,用作fastchat模型加载方案,支持更多的模型和数据库。
2023年10月:Langchain-Chatchat 0.2.5发布、推出代理内容、开源项目在Founder Park & Zhipu AI & Zilliz 举办的黑客马拉松中获得三等奖。
2023年12月:Langchain-Chatchat开源项目获得超过20K星。
2024年1月:LangChain 0.1.x推出,Langchain-Chatchat 0.2.x发布稳定版本0.2.10 后将停止更新和技术支持,全力研发具有更强应用性的Langchain-Chatchat 0.3.x。
👉CSDN大礼包🎁:此项目已打包《基于Langchain与ChatGLM等语言模型的本地知识库问答》免费分享(安全链接,放心点击)👈