文章目录
- 前言
- 一、安装部署
- 1.软硬件要求
- 2. 安装 Langchain-Chatchat
- 3.安装Xinference
- 4.遇到的问题
- 问题1:Failed building wheel for llama-cpp-python
- 问题2:Failed building wheel for pynini
- 问题3:运行xinference错误
- 二、初始化项目配置并运行
- 1.执行初始化
- 2.运行xinference
- 3.部署模型
- 1.从xinference中下载模型部署
- 2.添加本地模型部署
- 3.添加向量模型
- 4.修改Chatchat配置文件
- 1.配置模型(model_settings.yaml)
- 2.配置知识库路径(basic_settings.yaml)(可选)
- 2.基础配置文件(basic_settings.yaml)(可选)
- 5.初始化知识库
- 6.启动项目
前言
本文是基于LangChain-Chatchat0.3.1进行搭建的。
LangChain-Chatchat (原 Langchain-ChatGLM)
基于 ChatGLM 等大语言模型与 Langchain 等应用框架实现,开源、可离线部署的 RAG 与 Agent 应用项目。
一种利用 langchain 思想实现的基于本地知识库的问答应用,目标期望建立一套对中文场景与开源模型支持友好、可离线运行的知识库问答解决方案。
GitHub地址:https://github.com/chatchat-space/Langchain-Chatchat
一、安装部署
1.软硬件要求
💡软件方面,本项目已支持在 Python 3.8-3.11 环境中进行使用,并已在 Windows、macOS、Linux 操作系统中进行测试。
💻 硬件方面,因 0.3.0 版本已修改为支持不同模型部署框架接入,因此可在 CPU、GPU、NPU、MPS 等不同硬件条件下使用。
注意事项:
从 0.3.0 版本起,Langchain-Chatchat 提供以 Python 库形式的安装方式。Langchain-Chatchat 不再根据用户输入的本地模型路径直接进行模型加载,涉及到的模型种类包括 LLM、Embedding、Reranker 及后续会提供支持的多模态模型等,均改为支持市面常见的各大模型推理框架接入,如 Xinference、Ollama、LocalAI、FastChat、One API 等。
注意我这里是使用的0.3.1版本
电脑配置要求:
至少需要:32G内存、24G以上显存
。本人亲测。
2. 安装 Langchain-Chatchat
1.使用conda创建虚拟环境
#创建虚拟环境
conda create -n chatchat python=3.10
conda activate chatchat
使用Python 库的形式安装
pip install "langchain-chatchat[xinference]" -U -i https://pypi.tuna.tsinghua.edu.cn/simple
3.安装Xinference
Xinference官网:https://inference.readthedocs.io/zh-cn/latest/getting_started/installation.html
#创建xinference虚拟环境
conda create -n xinference python=3.10
conda activate xinference
#安装Xinference
pip install "xinference[all]"
4.遇到的问题
问题1:Failed building wheel for llama-cpp-python
Failed building wheel for llama-cpp-python
Could not build wheels for llama-cpp-python, which is required to install pyproject.toml-based projects
解决方案:
根据系统选择官方编译后的whl
下载进行离线安装。
官方网址
Releases · abetlen/llama-cpp-python (github.com)
cp310指的是python版本。根据自己的版本和操作系统选择
安装
pip install llama_cpp_python-0.2.90-cp310-cp310-linux_x86_64.whl
问题2:Failed building wheel for pynini
ERROR: Failed building wheel for pynini
ERROR: Failed to build installable wheels for some pyproject.toml based projects (pynini)
解决方案
conda install -c conda-forge pynini=2.1.5
问题3:运行xinference错误
OSError: libc.musl-x86_64.so.1: cannot open shared object file: No such file or directory
RuntimeError: Failed to load shared library ‘/root/miniconda3/envs/xinference/lib/python3.10/site-packages/llama_cpp/lib/libllama.so’: libc.musl-x86_64.so.1: cannot open shared object file: No such file or directory
解决方案
#查询libcuda.so.文件位置
sudo find /usr/ -name 'libcuda.so.*'
创建软连接
#/usr/local/cuda-12.1/compat/libcuda.so.1 为你本机地址
ln -s /usr/local/cuda-12.1/compat/libcuda.so.1 /lib/libc.musl-x86_64.so.1
二、初始化项目配置并运行
1.执行初始化
#创建一个目录名字为 chat-demo
mkdir chat-demo
#进入目录
cd chat-demo/
#执行初始化
chatchat init
该命令会执行以下操作:
- 创建所有需要的数据目录
- 复制 samples 知识库内容
- 生成默认 yaml 配置文件
出现如下信息就证明初始化成功了
目录结构如下:
- basic_settings.yaml 服务器基本配置信息
- kb_settings.yaml 知识库相关配置
- model_settings.yaml 模型配置项
- prompt_settings.yaml Prompt提示词 模板
- tool_settings.yaml Agent 工具配置项
2.运行xinference
# linux下运行 可以指定host和port
xinference-local --host 0.0.0.0 --port 9997
运行结果如下
访问127.0.0.1:9997
3.部署模型
1.从xinference中下载模型部署
选择我们需要部署的模型,比如我这里选择Qwen2进行部署。填写相应的参数,进行一键部署。第一次部署会下载模型,可以选择国内通道modelscope下载,速度较快。
此时可以返回终端查看模型下载进度,下载完成会自动部署。部署完成后,会展示在Running中,可以通过打开模型UI进行访问。
2.添加本地模型部署
点击Register Model 填写相应的信息
3.添加向量模型
4.修改Chatchat配置文件
1.配置模型(model_settings.yaml)
DEFAULT_EMBEDDING_MODEL、DEFAULT_EMBEDDING_MODEL改为自己的模型名字
# 默认选用的 LLM 名称
DEFAULT_LLM_MODEL: glm4 # 这里改为我们自己的模型名称
# 默认选用的 Embedding 名称
DEFAULT_EMBEDDING_MODEL: bge-m3 # 这里改为我们自己的模型名称
# 将 `LLM_MODEL_CONFIG` 中 `llm_model, action_model` 的键改成对应的 LLM 模型
# 在 `MODEL_PLATFORMS` 中修改对应模型平台信息
2.配置知识库路径(basic_settings.yaml)(可选)
默认知识库位于 项目地址/data/knowledge_base
,如果你想把知识库放在不同的位置,或者想连接现有的知识库,可以在这里修改对应目录即可。
# 知识库默认存储路径
KB_ROOT_PATH: D:\chatchat-test\data\knowledge_base
# 数据库默认存储路径。如果使用sqlite,可以直接修改DB_ROOT_PATH;如果使用其它数据库,请直接修改SQLALCHEMY_DATABASE_URI。
DB_ROOT_PATH: D:\chatchat-test\data\knowledge_base\info.db
# 知识库信息数据库连接URI
SQLALCHEMY_DATABASE_URI: sqlite:///D:\chatchat-test\data\knowledge_base\info.db
2.基础配置文件(basic_settings.yaml)(可选)
# 各服务器默认绑定host。如改为"0.0.0.0"需要修改下方所有XX_SERVER的host
# Windows 下 WEBUI 自动弹出浏览器时,如果地址为 "0.0.0.0" 是无法访问的,需要手动修改地址栏
# API 服务器地址。其中 public_host 用于生成云服务公网访问链接(如知识库文档链接)
API_SERVER:
host: 0.0.0.0
port: 7861
public_host: 127.0.0.1
public_port: 7861
# WEBUI 服务器地址
WEBUI_SERVER:
host: 0.0.0.0
port: 8501
5.初始化知识库
进行知识库初始化前,请确保已经启动模型推理框架及对应 embedding 模型,且已按照上述步骤完成模型接入配置。
运行命令初始化知识库
chatchat kb -r
等待一会出现如下信息就是运行成功了。
6.启动项目
运行命令启动项目
chatchat start -a
启动成功。控制台输出结果:
在浏览器访问http://0.0.0.0:8501