文章目录
- 1.相关参数
- 2.下载安装xinference推理框架
- 3.启动xinference下载GLM模型和模型编码器
- 4.模型和编码器下载完成后进行检查
- 5.创建新的虚拟环境chatchat
- 6.将LangChain-chatchat项目拉到本地
- 7.下载langchain-chatchat的包`清华源镜像`
- 8.创建一个chatchat配置文件存储路径
- 9.查看与修改Langchain-Chatchat配置
- 10.启动项目
- 11.封装启动脚本,方便后续使用
- 12.正确启动
官网:https://github.com/chatchat-space/Langchain-Chatchat
部署版本:0.3.1
1.相关参数
- Linux操作系统(Ubuntu22.04)
- anaconda虚拟环境
- 4090显卡1张即可
- xinference模型接入框架,模型推理框架,编码器加载框架等
- langchain-chatchat知识库构建框架
- glm4-chat大模型
- bge-large-zh-v1.5编码器
2.下载安装xinference推理框架
- 创建一个xinference环境,并激活
conda create --name xinference python==3.11
conda activate /home/zhoushuren/anaconda3/envs/xinference
注:请小心此处的conda环境路径,请仔细检查
- 使用
清华源镜像
下载xinference[transformers]
pip install "xinference[transformers]" -i https://pypi.tuna.tsinghua.edu.cn/simple
3.启动xinference下载GLM模型和模型编码器
- 启动xinference,设置xinference_home,modelscope的model_source
XINFERENCE_HOME=opt/module/xinference XINFERENCE_MODEL_SRC=modelscope xinference-local --host 0.0.0.0 --port 9997
- 接着安装模型与编码器
需要长时间等待
请新开一个窗口执行此命令(上一步xinference是边监听边运行)
xinference launch --model-engine vllm --model-name glm4-chat --size-in-billions 9 --model-format pytorch --quantization none
xinference launch --model-name bge-large-zh-v1.5 --model-type embedding
4.模型和编码器下载完成后进行检查
xinference list
模型和编码器的UID是否同时存在
5.创建新的虚拟环境chatchat
Xinference完成大模型接入,编码器加载等
Langchatchat构建本地知识库
接下来的步骤完成Langchatchat的部署
conda create --name chatchat python==3.11
conda activate chatchat
6.将LangChain-chatchat项目拉到本地
cd opt/module
git clone https://github.com/chatchat-space/Langchain-Chatchat.git
7.下载langchain-chatchat的包清华源镜像
pip install langchain-chatchat -U -i https://pypi.tuna.tsinghua.edu.cn/simple
继续执行,下载xinference兼容的依赖库
pip install langchain-chatchat[xinference] -U -i https://pypi.tuna.tsinghua.edu.cn/simple
8.创建一个chatchat配置文件存储路径
- 创建目录,
请手动更改你自己的目录位置
sudo mkdir opt/module/Langchain-Chatchat/langchainchatchat_data
- 设置 Chatchat 存储配置文件和数据文件的根目录
# on linux or macos 本教程仅针对linux
export CHATCHAT_ROOT=opt/module/Langchain-Chatchat/langchainchatchat_data
9.查看与修改Langchain-Chatchat配置
- 切换chatchat虚拟环境,在启动项目之前确保首先进行模型推理框架的运行,并加载所需使用的模型,查看与修改 Langchain-Chatchat 配置
chatchat-config --help
- 该命令会返回如下
Usage: chatchat-config [OPTIONS] COMMAND [ARGS]...指令` chatchat-config` 工作空间配置Options:--help Show this message and exit.Commands:basic 基础配置kb 知识库配置model 模型配置server 服务配置
- 可根据上述配置命令选择需要查看或修改的配置类型,以
基础配置
为例,想要进行基础配置
查看或修改时可以输入以下命令获取帮助信息:
chatchat-config basic --help
- 会得到如下
Usage: chatchat-config basic [OPTIONS]基础配置Options:--verbose [true|false] 是否开启详细日志--data TEXT 初始化数据存放路径,注意:目录会清空重建--format TEXT 日志格式--clear 清除配置--show 显示配置--help Show this message and exit.
- 使用 chatchat-config 查看对应配置参数以
基础配置
为例,可根据上述命令帮助内容确认,需要查看基础配置
的配置参数,可直接输入:
chatchat-config basic --show
- 未修改的内容如下所示
{"log_verbose": false,"CHATCHAT_ROOT": "/root/anaconda3/envs/chatchat/lib/python3.11/site-packages/chatchat","DATA_PATH": "/root/anaconda3/envs/chatchat/lib/python3.11/site-packages/chatchat/data","IMG_DIR": "/root/anaconda3/envs/chatchat/lib/python3.11/site-packages/chatchat/img","NLTK_DATA_PATH": "/root/anaconda3/envs/chatchat/lib/python3.11/site-packages/chatchat/data/nltk_data","LOG_FORMAT": "%(asctime)s - %(filename)s[line:%(lineno)d] - %(levelname)s: %(message)s","LOG_PATH": "/root/anaconda3/envs/chatchat/lib/python3.11/site-packages/chatchat/data/logs","MEDIA_PATH": "/root/anaconda3/envs/chatchat/lib/python3.11/site-packages/chatchat/data/media","BASE_TEMP_DIR": "/root/anaconda3/envs/chatchat/lib/python3.11/site-packages/chatchat/data/temp","class_name": "ConfigBasic"
}
- 使用 chatchat-config 修改对应配置参数,以修改模型配置中默认llm模型为例,可以执行以下命令行查看配置项名称:
chatchat-config model --help
- 这时会得到
Usage: chatchat-config model [OPTIONS]模型配置Options:--default_llm_model TEXT 默认llm模型--default_embedding_model TEXT 默认embedding模型--agent_model TEXT agent模型--history_len INTEGER 历史长度--max_tokens INTEGER 最大tokens--temperature FLOAT 温度--support_agent_models TEXT 支持的agent模型--set_model_platforms TEXT 模型平台配置 as a JSON string.--set_tool_config TEXT 工具配置项 as a JSON string.--clear 清除配置--show 显示配置--help Show this message and exit.
- 可首先查看当前模型配置的配置项:
chatchat-config model --show
- 这时会得到
{"DEFAULT_LLM_MODEL": "glm4-chat","DEFAULT_EMBEDDING_MODEL": "bge-large-zh-v1.5","Agent_MODEL": null,"HISTORY_LEN": 3,"MAX_TOKENS": null,"TEMPERATURE": 0.7,..."class_name": "ConfigModel"
}
- 需要修改默认llm模型为qwen2-instruct时,可执行:
chatchat-config model --default_llm_model qwen2-instruct
- 初始化知识库
chatchat-kb -r
- 初始化知识库最常见的报错信息是
Traceback (most recent call last):File "/Users/hkk/Amap/ai/Langchain-Chatchat/myenv/lib/python3.8/site-packages/chatchat/init_database.py", line 156, in mainfolder2db(kb_names=args.kb_name, mode="recreate_vs", embed_model=args.embed_model)File "/Users/hkk/Amap/ai/Langchain-Chatchat/myenv/lib/python3.8/site-packages/chatchat/server/knowledge_base/migrate.py", line 130, in folder2dbkb.create_kb()File "/Users/hkk/Amap/ai/Langchain-Chatchat/myenv/lib/python3.8/site-packages/chatchat/server/knowledge_base/kb_service/base.py", line 80, in create_kbself.do_create_kb()File "/Users/hkk/Amap/ai/Langchain-Chatchat/myenv/lib/python3.8/site-packages/chatchat/server/knowledge_base/kb_service/faiss_kb_service.py", line 51, in do_create_kbself.load_vector_store()File "/Users/hkk/Amap/ai/Langchain-Chatchat/myenv/lib/python3.8/site-packages/chatchat/server/knowledge_base/kb_service/faiss_kb_service.py", line 28, in load_vector_storereturn kb_faiss_pool.load_vector_store(kb_name=self.kb_name,File "/Users/hkk/Amap/ai/Langchain-Chatchat/myenv/lib/python3.8/site-packages/chatchat/server/knowledge_base/kb_cache/faiss_cache.py", line 132, in load_vector_storeraise RuntimeError(f"向量库 {kb_name} 加载失败。")
RuntimeError: 向量库 samples 加载失败。
- 遇到类似加载向量库失败的报错,缺少一个faiss这个包,这个时候需要再安装一个faiss的包
pip install faiss-cpu==1.7.4
pip install rank_bm25 -i https://mirrors.aliyun.com/pypi/simple
- 出现以下日志即为成功:
----------------------------------------------------------------------------------------------------
知识库名称 :samples
知识库类型 :faiss
向量模型: :bge-large-zh-v1.5
知识库路径 :/root/anaconda3/envs/chatchat/lib/python3.11/site-packages/chatchat/data/knowledge_base/samples
文件总数量 :47
入库文件数 :42
知识条目数 :740
用时 :0:02:29.701002
----------------------------------------------------------------------------------------------------总计用时 :0:02:33.414425
10.启动项目
chatchat start -a
- 至此恭喜您,模型启动成功
- 打开浏览器127.0.0.1:8501即可查看
11.封装启动脚本,方便后续使用
恭喜你完成了Langchain-chatchat知识库从0到1的 部署
前11步从0-1的过程中需要
-
启动xinference
-
xinference加载模型,加载编码器
-
启动langchain-chatchat知识库
每一步都需要执行一条指令,非常长,我们将其封装成脚本,方便我们后续启动服务
在opt/module下撰写脚本
- 撰写xinference启动脚本
vim xinference_start.sh
- 内容如下
#!/bin/bash
XINFERENCE_HOME=xinference XINFERENCE_MODEL_SRC=modelscope xinference-local --host 0.0.0.0 --port 9997
- 撰写xinference_model.sh
vim xinference_model.sh
#!/bin/bash
xinference launch --model-engine transformers --model-name glm4-chat --size-in-billions 9 --model-format pytorch --quantization none
- 撰写xinference_model_emb.sh
#!/bin/bash
xinference launch --model-name bge-large-zh-v1.5 --model-type embedding
- 修改三个脚本权限
sudo chmod 777 xinference_start.sh
sudo chmod 777 xinference_model.sh
sudo chmod 777 xinference_model_emb.sh
12.正确启动
至此恭喜你完成了脚本封装,接下来每逢想用的时候启动它即可
- 到达脚本文件目录opt/module为例
cd opt/module
- 切换conda环境
conda activate ~/.anaconda3/envs/xinference
- 执行脚本
./xinference_start.sh
- 继续开一个端口
继续开一个窗口实现,左边监听xinference,右边监听chatcaht如下效果所示。
#切到chatchat环境
conda activate ~/.anaconda3/envs/chatchat
- 分别执行模型加载
./xinference_model.sh
./xinference_model_emb.sh
- 最终启动
chatchat start -a