不用魔法!国内网络环境搞定Langchain-Chatchat本地部署(附模型离线包)

发布时间:2026/5/22 5:52:02

不用魔法!国内网络环境搞定Langchain-Chatchat本地部署(附模型离线包) 国内网络环境下Langchain-Chatchat全离线部署实战指南对于许多国内开发者和企业用户来说想要体验最新的AI对话系统却常常受限于网络环境。GitHub访问缓慢、Hugging Face模型下载困难、依赖安装失败等问题让本地部署变得异常艰难。本文将分享一套完全基于国内资源的Langchain-Chatchat部署方案从代码获取到模型安装全程无需特殊网络条件特别适合企业内网环境或网络条件受限的开发者。1. 环境准备与资源获取1.1 硬件与基础软件要求在开始部署前请确保您的Windows10系统满足以下最低配置GPU要求NVIDIA显卡建议RTX 3060及以上显存至少8GB内存要求16GB及以上运行大模型时建议32GB存储空间至少50GB可用空间模型文件体积较大基础软件准备清单软件名称版本要求国内下载渠道Anaconda最新版清华镜像站CUDA Toolkit11.7/11.8百度网盘/阿里云盘Python3.8-3.11Anaconda自带提示CUDA版本选择很关键建议使用11.7或11.8版本这两个版本在国内资源最丰富且兼容性较好。1.2 国内资源获取方案针对网络受限环境我们整理了全套资源的国内获取方式Langchain-Chatchat源码百度网盘https://pan.baidu.com/s/1rdiwt-9LYgT-ruHAqQnPIQ 提取码hxy3阿里云盘https://www.alipan.com/s/xxxxx 提取码xxxx预训练模型包chatGLM2-6B模型百度网盘https://pan.baidu.com/s/1-7mdpLB85RHGjhpOrcmCCQ 提取码qscm阿里云盘https://www.alipan.com/s/N3jgjuAuaKU 提取码xf23m3e-base模型百度网盘https://pan.baidu.com/s/1XhJj1zFoMUrg0eM7TETgWg 提取码5rlqCUDA与PyTorch离线包CUDA 11.7完整安装包百度网盘https://pan.baidu.com/s/1ZJJ7cUuHM6d8_JGkSFx5Ag 提取码zgy4PyTorch 2.0.0 (CUDA 11.7)Python 3.10版本https://pan.baidu.com/s/1zfACKmj5DanI_zFUpeIVLg 提取码qfxwPython 3.11版本https://pan.baidu.com/s/1bhbniNKOTDEjg_jrsHv9bA 提取码svyh2. 基础环境配置2.1 Anaconda环境设置首先配置国内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创建专用虚拟环境conda create -n langchain_chat python3.10 conda activate langchain_chat2.2 CUDA与PyTorch离线安装安装下载好的CUDA Toolkit 11.7安装完成后验证nvcc --version安装离线PyTorch包以Python 3.10为例pip install torch-2.0.0cu117-cp310-cp310-win_amd64.whl验证PyTorch能否识别GPUimport torch print(torch.cuda.is_available()) # 应返回True print(torch.version.cuda) # 应显示11.73. Langchain-Chatchat部署流程3.1 项目结构与模型放置解压下载的Langchain-Chatchat源码包建议放在无中文路径的目录下例如D:\AI_Projects\ ├── Langchain-Chatchat/ # 主项目目录 ├── models/ ├── chatglm2-6b/ # GLM模型 └── m3e-base/ # Embedding模型修改配置文件model_config.py中的模型路径# 修改前 chatglm2-6b: { name: chatglm2-6b, pretrained_model_name: THUDM/chatglm2-6b, # ... } # 修改后 chatglm2-6b: { name: chatglm2-6b, pretrained_model_name: rD:\AI_Projects\models\chatglm2-6b, # ... }注意路径前必须加r表示原始字符串避免转义字符问题。3.2 依赖离线安装技巧对于无法通过pip直接安装的依赖可以采用以下策略批量下载依赖包pip download -r requirements.txt -d ./offline_packages从国内镜像站手动下载清华PyPI镜像https://pypi.tuna.tsinghua.edu.cn/simple阿里云PyPI镜像https://mirrors.aliyun.com/pypi/simple/离线安装pip install --no-index --find-links./offline_packages -r requirements.txt常见依赖问题解决方案streamlit报错修改site-packages/streamlit/web/cli.py将from streamlit.cli import main改为from streamlit.web.cli import mainjq相关错误直接注释掉model_config.py中所有jq相关配置4. 数据库初始化与系统启动4.1 向量数据库配置初始化向量数据库建议首次使用重建选项python init_database.py --recreate-vs可能遇到的问题及解决ModuleNotFoundError: No module named pwd这是Linux特有模块Windows下需注释掉相关代码修改server/utils.py找到pwd相关代码并注释词汇表加载失败检查模型文件完整性特别是tokenizer相关文件确保路径无中文且权限正常4.2 系统启动与验证启动Web服务python startup.py -a成功启动后终端会显示访问地址默认为http://127.0.0.1:8501。如果遇到端口冲突可通过修改configs/server_config.py调整WEBUI_SERVER { host: 127.0.0.1, port: 8502, # 修改为可用端口 }5. 常见问题深度排查5.1 GPU相关错误处理错误现象AssertionError: Torch not compiled with CUDA enabled解决方案步骤确认CUDA版本nvcc --version检查PyTorch版本匹配pip list | grep torch输出应包含cu117等CUDA标识如果不匹配卸载重装pip uninstall torch torchvision torchaudio pip install torch-2.0.0cu117-cp310-cp310-win_amd64.whl5.2 模型加载异常处理错误现象AttributeError: ChatGLMTokenizer object has no attribute tokenizer这是模型版本不匹配导致的典型问题解决方法检查模型文件结构确保包含tokenizer_config.jsontokenizer.model其他相关bin文件更新transformers库版本pip install transformers4.33.3 -U修改代码兼容性 在server/chatglm_tokenizer.py中将self.tokenizer改为self.sp_tokenizer5.3 其他典型问题速查表错误现象可能原因解决方案is not a supported wheelPython/CUDA版本不匹配下载对应版本的wheel文件OSError: [Errno 22]路径包含中文/特殊字符改用全英文路径显存不足模型太大/显存太小减小batch_size或使用量化模型依赖冲突版本不兼容创建干净虚拟环境重新安装6. 性能优化与生产部署建议对于企业内网环境下的长期稳定运行还需要考虑以下优化措施模型量化将模型转换为4bit或8bit量化版本显著降低显存占用# 在加载模型时添加量化配置 model AutoModel.from_pretrained(model_path, load_in_4bitTrue)API服务化使用FastAPI封装为HTTP服务方便集成from fastapi import FastAPI app FastAPI() app.post(/chat) async def chat_endpoint(query: str): response your_chat_function(query) return {response: response}日志监控添加详细日志记录便于问题追踪import logging logging.basicConfig( filenamechat_service.log, levellogging.INFO, format%(asctime)s - %(levelname)s - %(message)s )资源隔离使用Docker容器化部署避免环境冲突FROM nvidia/cuda:11.7.1-base COPY . /app WORKDIR /app RUN pip install -r requirements.txt CMD [python, startup.py]在实际企业部署中我们遇到过因Windows系统编码问题导致的模型加载失败案例。解决方法是在系统环境变量中添加PYTHONIOENCODINGutf-8并在代码开头设置import sys import io sys.stdout io.TextIOWrapper(sys.stdout.buffer, encodingutf-8)对于需要7×24小时稳定运行的生产环境建议采用进程守护工具如PM2npm install pm2 -g pm2 start python --name chat_service --interpreter python -- startup.py -a pm2 save pm2 startup

相关新闻