(图片来源于网络)
你是否也是盘即个人电脑磁使再怎么不够用,也舍不得删除几年前做的运维方案、架构方案、设计方案文档?最后即使文档都保存了,存云盘了,到用的时候依旧发现找不到,找的也不是想要的。
|大模型知识库来袭
现在不用再担心了找不到材料文档了,GitHub开源了一款可离线,支持检索增强生成(RAG)大模型的知识库项目。虽然开源时间不长,但是势头很猛,已经斩获25K Star。具备以下特点:
|
总结下重点就是:
支持中文,可私有化部署,免费商用!
支持中文,可私有化部署,免费商用!
支持中文,可私有化部署,免费商用!
重要的事情说三遍
项目名称:Langchain-Chatchat
项目地址:https://github.com/chatchat-space/Langchain-Chatchat
📺 原理介绍视频(点击可看视频)
从文档处理角度来看,实现流程如下:
技术路线图:
Langchain 应用
基础React形式的Agent实现,包括调用计算器等
Langchain 自带的Agent实现和调用
智能调用不同的数据库和联网知识
Bing 搜索
DuckDuckGo 搜索
Metaphor 搜索
接入非结构化文档
结构化数据接入
分词及召回
.txt, .rtf, .epub, .srt
.eml, .msg
.html, .xml, .toml, .mhtml
.json, .jsonl
.md, .rst
.docx, .doc, .pptx, .ppt, .odt
.enex
.pdf
.jpg, .jpeg, .png, .bmp
.py, .ipynb
.csv, .tsv
.xlsx, .xls, .xlsd
接入不同类型 TextSplitter
优化依据中文标点符号设计的 ChineseTextSplitter
本地数据接入
搜索引擎接入
Agent 实现
LLM 模型接入
支持通过调用 FastChat api 调用 llm
支持 ChatGLM API 等 LLM API 的接入
支持 Langchain 框架支持的LLM API 接入
Embedding 模型接入
支持调用 HuggingFace 中各开源 Emebdding 模型
支持 OpenAI Embedding API 等 Embedding API 的接入
支持 智谱AI、百度千帆、千问、MiniMax 等在线 Embedding API 的接入
基于 FastAPI 的 API 方式调用
Web UI
基于 Streamlit 的 Web UI
|大模型知识库来袭
Docker 部署
一行代码搞定,但是建议网速不好的同学不要尝试
docker run -d --gpus all -p 80:8501 registry.cn-beijing.aliyuncs.com/chatchat/chatchat:0.2.7
常规模式本地部署方案
1. 环境配置
# 首先,确信你的机器安装了 Python 3.8 - 3.10 版本
$ python --version
Python 3.8.13
# 如果低于这个版本,可使用conda安装环境
$ conda create -p /your_path/env_name python=3.8
# 激活环境
$ source activate /your_path/env_name
# 或,conda安装,不指定路径, 注意以下,都将/your_path/env_name替换为env_name
$ conda create -n env_name python=3.8
$ conda activate env_name # Activate the environment
# 更新py库
$ pip3 install --upgrade pip
# 关闭环境
$ source deactivate /your_path/env_name
# 删除环境
$ conda env remove -p /your_path/env_name
接着,开始安装项目的依赖
# 拉取仓库
$ git clone --recursive https://github.com/chatchat-space/Langchain-Chatchat.git
# 进入目录
$ cd Langchain-Chatchat
# 安装全部依赖
$ pip install -r requirements.txt
# 默认依赖包括基本运行环境(FAISS向量库)。以下是可选依赖:
- 如果要使用 milvus/pg_vector 等向量库,请将 requirements.txt 中相应依赖取消注释再安装。
- 如果要开启 OCR GPU 加速,请安装 rapidocr_paddle[gpu]
- 如果要使用在线 API 模型,请安装对用的 SDK
此外,为方便用户 API 与 webui 分离运行,可单独根据运行需求安装依赖包。
如果只需运行 API,可执行:
$ pip install -r requirements_api.txt
# 默认依赖包括基本运行环境(FAISS向量库)。如果要使用 milvus/pg_vector 等向量库,请将 requirements.txt 中相应依赖取消注释再安装。
如果只需运行 WebUI,可执行:
$ pip install -r requirements_webui.txt
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
最轻模式本地部署方案
该模式的配置方式与常规模式相同,但无需安装 torch 等重依赖,通过在线API实现 LLM 和 Ebeddings 相关功能,适合没有显卡的电脑使用。
$ pip install -r requirements_lite.txt
$ python startup.py -a --lite
Demo示例
Web UI 对话界面:
Web UI 知识库管理页面: