使用 Langchain-Chatchat 构建本地专属 GPT 助手
本文介绍了如何使用开源项目 Langchain-Chatchat 部署本地大语言模型应用。通过配置 Qwen 大模型与 BGE 向量检索模型,实现私有数据的安全问答。内容涵盖环境准备、模型下载、配置文件修改、数据库初始化及服务启动流程,并演示了对话、知识库问答及文件处理功能,适合希望搭建本地化 AI 助手的开发者参考。

本文介绍了如何使用开源项目 Langchain-Chatchat 部署本地大语言模型应用。通过配置 Qwen 大模型与 BGE 向量检索模型,实现私有数据的安全问答。内容涵盖环境准备、模型下载、配置文件修改、数据库初始化及服务启动流程,并演示了对话、知识库问答及文件处理功能,适合希望搭建本地化 AI 助手的开发者参考。

随着大语言模型(LLM)技术的快速发展,如何安全、高效地利用私有数据成为企业和个人用户关注的焦点。将数据上传至公有云 API 存在隐私泄露风险,因此部署本地化的 AI 应用显得尤为重要。
Langchain-Chatchat 是一个基于 Langchain 框架与大语言模型结合的开源项目,支持本地知识库问答、文件对话及搜索引擎等功能。通过自行部署,用户可以完全掌控数据流向,确保信息安全。本文将详细介绍如何在 Linux 环境下从零开始搭建并运行 Langchain-Chatchat。
Langchain-Chatchat 目前拥有大量社区贡献者,是一个成熟的 RAG(检索增强生成)解决方案。其核心功能包括:
建议配置如下:
克隆官方仓库到本地服务器:
git clone https://github.com/chatchat-space/Langchain-Chatchat.git
cd Langchain-Chatchat
若无法访问 GitHub,可下载源码压缩包解压至指定目录。
进入项目根目录,创建虚拟环境并安装依赖:
python -m venv venv
source venv/bin/activate
pip install -r requirements.txt
注意:部分依赖可能需要编译,请确保已安装 gcc 和 g++。
本项目推荐选用 Qwen 系列模型。以 Qwen/Qwen-1_8B-Chat 为例,通过 HuggingFace 镜像站下载:
export HF_ENDPOINT=https://hf-mirror.com
使用 Python 脚本下载模型权重:
from huggingface_hub import snapshot_download
snapshot_download(
repo_id='Qwen/Qwen-1_8B-Chat',
repo_type='model',
local_dir='./Qwen/Qwen-1_8B-Chat',
resume_download=True
)
下载完成后,记录模型的绝对路径。
向量模型用于将文本转化为向量索引。推荐使用 bge-large-zh-v1.5:
from huggingface_hub import snapshot_download
snapshot_download(
repo_id='BAAI/bge-large-zh-v1.5',
repo_type='model',
local_dir='./BAAI/bge-large-zh-v1.5',
resume_download=True
)
同样记录绝对路径,后续配置需要用到。
执行以下命令复制示例配置:
python copy_config_example.py
cd configs/
model_config.py)找到 EMBEDDING_MODEL 和 LLM_MODELS 变量,填入模型名称:
# 选用的 Embedding 名称
EMBEDDING_MODEL = "bge-large-zh-v1.5"
# LLM 模型列表,默认取第一个
LLM_MODELS = ["Qwen-1_8B-Chat"]
同时,务必在对应位置填写模型的绝对路径。相对路径容易因启动目录不同导致错误,强烈建议使用绝对路径。
server_config.py)此文件控制服务端口和设备类型。
device 改为 cuda;若仅 CPU,改为 cpu。# 示例配置片段
llm_model_name = "Qwen-1_8B-Chat"
device = "cuda"
保存后返回项目根目录。
Langchain-Chatchat 使用 FAISS 等向量数据库存储知识库索引。首次运行需初始化数据库:
python init_database.py --recreate-vs
该命令会加载 knowledge_base/samples/content 下的示例文档,并构建向量索引存储在 knowledge_base/samples/vector_store 目录下。耗时约 1-2 分钟,取决于硬件性能。
在项目根目录执行:
python startup.py -a
该命令会同时启动后端 API 服务和前端 WebUI 界面。
启动成功后,终端会输出访问地址。通常默认为:
http://localhost:6006/
在浏览器中打开该地址即可进入操作界面。若在远程服务器部署,需将 localhost 替换为服务器 IP,并确保防火墙开放对应端口。
选择左侧菜单中的'对话'选项,输入自然语言问题,系统将调用配置的 Qwen 模型直接回复。适合通用知识问答。
点击'知识库管理',上传 PDF、TXT 等格式文档。系统会自动切片并向量化。上传后添加到知识库,提问时将优先检索相关片段。
上传单个文件,系统解析内容后进行对话。类似于 ChatPDF,适合快速阅读长文档并提取信息。
集成搜索引擎插件,可获取最新网络信息。需在设置中配置相应的 API Key。
若使用小显存 GPU 运行失败,可尝试以下方案:
若 6006 端口被占用,修改 server_config.py 中的端口号,并同步更新防火墙规则。
确保向量模型支持中文(如 BGE 系列),并在配置文件中正确指定模型名称。
Langchain-Chatchat 提供了一个开箱即用的本地化大模型应用框架。通过本文的步骤,您可以成功部署属于自己的 GPT 助手,实现数据的私有化处理。后续可根据需求进一步开发自定义 Agent 或接入更多数据源。对于有数据安全需求的团队,这是一个值得深入研究的开源方案。
注:本文档仅用于技术分享,请遵守相关法律法规及开源协议。

微信公众号「极客日志」,在微信中扫描左侧二维码关注。展示文案:极客日志 zeeklog
使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online
生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online
基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online
解析常见 curl 参数并生成 fetch、axios、PHP curl 或 Python requests 示例代码。 在线工具,curl 转代码在线工具,online
将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online
将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online