国内开发者零障碍部署Langchain-Chatchat全攻略(含ChatGLM2-6B国内镜像)

最近在技术社区看到不少开发者抱怨部署Langchain-Chatchat时遇到网络问题,特别是下载Hugging Face模型时的各种超时和中断。作为同样经历过这些困扰的开发者,我整理了一套完全基于国内网络环境的部署方案,无需特殊网络条件,使用国内镜像源和网盘资源即可完成全流程部署。

1. 环境准备与工具选择

在Windows10系统下部署Langchain-Chatchat,合理的工具选择能大幅降低后续踩坑概率。经过多次实践验证,我推荐以下配置组合:

  • Python版本 :3.10(稳定性最佳,社区支持完善)
  • 包管理工具 :Miniconda(比完整Anaconda更轻量)
  • CUDA版本 :11.7(兼容性最广的稳定版本)
# 验证Python版本
python --version
# 验证CUDA版本
nvcc --version

注意:CUDA版本必须与后续安装的PyTorch版本严格匹配,这是90%部署失败的根本原因

国内用户建议使用清华镜像源加速conda和pip的包下载:

# 配置conda清华源
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
conda config --set show_channel_urls yes

# 配置pip清华源
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple

2. 模型与代码的国内获取方案

传统教程直接推荐从GitHub和Hugging Face克隆仓库,但在国内网络环境下,这些操作往往以失败告终。经过测试,以下替代方案成功率更高:

Langchain-Chatchat代码获取:

  • 码云镜像:https://gitee.com/mirrors/Langchain-Chatchat
  • 百度网盘(v0.2.9版本):https://pan.baidu.com/s/1rdiwt-9LYgT-ruHAqQnPIQ 提取码:hxy3

模型下载方案对比:

模型名称 官方源 国内替代方案
ChatGLM2-6B Hugging Face 百度网盘:https://pan.baidu.com/s/1-7mdpLB85RHGjhpOrcmCCQ 提取码:qscm
m3e-base Hugging Face 阿里云盘:https://www.alipan.com/s/N3jgjuAuaKU 提取码:xf23
bge-large-zh Hugging Face 建议使用m3e-base替代,性能接近且国内下载更稳定
# 修改model_config.py示例(关键配置)
MODEL_PATH_CONFIG = {
    "chatglm2-6b": r"D:\models\chatglm2-6b",  # 注意路径前的r标记
    "m3e-base": r"D:\models\m3e-base"
}

提示:模型路径不要包含中文和空格,这是导致后续加载失败的常见原因

3. 依赖安装的避坑指南

依赖安装阶段最容易出现版本冲突问题,特别是PyTorch与CUDA的版本匹配。根据实测,以下组合最为稳定:

# 创建并激活虚拟环境
conda create -n chatchat python=3.10
conda activate chatchat

# 安装基础依赖(使用清华源)
pip install -r requirements.txt
pip install -r requirements_api.txt
pip install -r requirements_webui.txt

# 安装GPU版PyTorch(CUDA 11.7)
pip install torch==2.0.0+cu117 torchvision==0.15.1+cu117 --index-url https://download.pytorch.org/whl/cu117

常见问题解决方案:

  1. Torch与CUDA版本不匹配

    • 执行 python -c "import torch; print(torch.cuda.is_available())" 验证
    • 若返回False,需检查CUDA和PyTorch版本对应关系
  2. streamlit.cli报错

    • 修改 venv/Lib/site-packages/streamlit/web/cli.py
      # from streamlit.web import bootstrap
      from streamlit import bootstrap  # 修改为这种导入方式
      
  3. 词汇表加载失败

    • 检查模型文件完整性
    • 确认config.json和tokenizer.json文件存在

4. 系统初始化与启动优化

完成基础环境搭建后,正确的初始化流程能避免90%的运行时错误:

# 初始化数据库(重建向量存储)
python init_database.py --recreate-vs

# 启动Web服务(开发模式)
python startup.py -a

对于生产环境使用,建议采用更稳定的启动方式:

# 后台运行API服务
nohup python startup.py --all-webui > api.log 2>&1 &

# 检查服务状态
netstat -ano | findstr 8501

性能优化建议:

  • 修改 configs/model_config.py 中的 device 参数为"cuda"
  • 调整 configs/server_config.py 中的 max_threads 数量(建议4-8)
  • 对于低配GPU,可启用 precision="fp16" 减少显存占用

5. 常见问题即时排查手册

部署过程中可能遇到的典型问题及解决方案:

问题1:AssertionError: Torch not compiled with CUDA enabled

  • 检查项:
    • nvcc --version 显示的CUDA版本
    • pip list 中torch是否带cu117后缀
  • 解决方案:
    • 完全卸载后重新安装匹配版本:
    pip uninstall torch torchvision
    pip install torch==2.0.0+cu117 torchvision==0.15.1+cu117
    

问题2:OSError: Unable to load vocabulary file

  • 检查项:
    • 模型路径是否包含中文/空格
    • tokenizer.json文件是否存在
  • 解决方案:
    • 在路径字符串前添加r前缀: r"D:\models\chatglm2-6b"
    • 重新下载损坏的模型文件

问题3:RuntimeError: Found no NVIDIA driver

  • 检查项:
    • nvidia-smi 是否能正常输出
    • 设备管理器中GPU是否识别正常
  • 解决方案:
    • 更新NVIDIA驱动至最新版
    • 禁用Hyper-V等虚拟化技术

实际部署中发现,大部分问题都源于环境配置不当。建议严格按照上述步骤操作,可以节省大量排错时间。对于想快速体验的用户,我已经将配置好的虚拟环境打包,包含所有预装依赖和测试通过的模型版本,解压即可使用。

Logo

中国智能体开发者社区,聚焦智能体与大模型开发,提供前沿资讯、实用工具链、开源项目及行业案例。通过技术沙龙、开发者大赛等活动,促进经验交流与协作,助力开发者快速构建创新智能应用。

更多推荐