1. 说明
比较了几个AI LLM的集成应用工具(比如Quivr, Dify, one-api), 还是LangChain-Chatchat更符合我的需要:
- 支持私有化部署不同的LLM
- 知识库支持
- Api支持
- 开源免费, 容易二开
相关路径:
条项 | 路径 |
---|---|
LangChain-Chatchat 项目 | /data0/Projects/Langchain-Chatchat |
LLM 语言模型保存路径 | /data0/Projects/LLMs |
安装环境:
软件: ubuntu22.04 / python 3.10 / pip22
硬件: 虚拟机 i9cpu, 分配16核, 52G内存, 500G硬盘
2. 安装
说明: 没选择docker方案是因为想更了解实现原理及二开需要
2.1 为避免安装时出现 "python setup.py egg_info did not run successfully." 问题
pip install setuptools-scm
pip install seqeval
2.2 资料准备
LangChain-Chatchat: : 用科学方法下载到路径 /data0/Projects/Langchain-Chatchat
LLM语言模型: 用科学方法下载到路径 /data0/Projects/LLMs
名称 | 源 | 备注 |
LangChain-Chatchat | https://github.com/chatchat-space/Langchain-Chatchat.git | 使用 |
bge-large-zh | https://huggingface.co/BAAI/bge-large-zh | 备用 |
bge-large-zh-v1.5 | https://huggingface.co/BAAI/bge-large-zh-v1.5 | 使用 |
chatglm3-6b | https://huggingface.co/THUDM/chatglm3-6b | 使用 |
2.3 执行
安装依赖库
# 进入目录
$ cd /data0/Projects/Langchain-Chatchat# 安装全部依赖
$ pip install -r requirements.txt
$ pip install -r requirements_api.txt
$ pip install -r requirements_webui.txt
生成配置文件
python copy_config_example.py
修改配置文件, 仅列出修改之处 (因CPU比GPU便宜,选用CPU方式 : 0):
configs/model_config.py
...
MODEL_ROOT_PATH = "/data0/Projects/LLMs"# 选用的 Embedding 名称
EMBEDDING_MODEL = "bge-large-zh-v1.5"# Embedding 模型运行设备。设为 "auto" 会自动检测(会有警告),也可手动设定为 "cuda","mps","cpu","xpu" 其中之一。
# EMBEDDING_DEVICE = "auto"
EMBEDDING_DEVICE = "cpu"...
# 要运行的 LLM 名称,可以包括本地模型和在线模型。列表中本地模型将在启动项目时全部加载。
# 列表中第一个模型将作为 API 和 WEBUI 的默认模型。
# 在这里,我们使用目前主流的两个离线模型,其中,chatglm3-6b 为默认加载模型。
# 如果你的显存不足,可使用 Qwen-1_8B-Chat, 该模型 FP16 仅需 3.8G显存。LLM_MODELS = ["chatglm3-6b", "zhipu-api", "openai-api"]
...MODEL_PATH = {"embed_model": {"bge-large-zh": "/data0/Projects/LLMs/bge-large-zh","bge-large-zh-v1.5": "/data0/Projects/LLMs/bge-large-zh-v1.5",},"llm_model": {"chatglm3-6b": "/data0/Projects/LLMs/chatglm3-6b",},
}
初始化知识库, 如果模型路径不对,会初始化失败,也导不进知识库文件
python init_database.py --recreate-vs
启动
$ python startup.py -a
3. 测试
3.1 LLM对话
几乎拉满性能
3.2 知识库
3.3 API 接口
http://ai001.dev.ia:7861/docs
参考
- https://github.com/chatchat-space/Langchain-Chatchat.git