Langchain---开源、离线、免费商用的大模型知识库来袭!全流程可使用开源模型实现的本地知识库问答应用!快速搭建个人和企业私有智能知识库!

本文介绍了GitHub上开源的Langchain-Chatchat项目,它提供了一个离线、本地化的知识库问答解决方案,支持中文和私有化部署。文章详细描述了Docker部署、常规模式和最轻模式的本地部署方案,以及如何解决数据安全和私有化的需求。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、介绍

GitHub开源了一款可离线,支持检索增强生成(RAG)大模型的知识库项目。虽然开源时间不长,但是势头很猛,已经斩获25K Star。具备以下特点:

  • 项目利用 langchain 思想实现的基于本地知识库的问答应用,目标期望建立一套对中文场景与开源模型支持友好、可离线运行的知识库问答解决方案;

  • 项目支持的开源 LLM 与 Embedding 模型,本项目可实现全部使用开源模型离线私有部署。与此同时,本项目也支持 OpenAI GPT API 的调用,并将在后续持续扩充对各类模型及模型 API 的接入;

  • 项目方案采用Apache License,可以免费商用,无需付费。

支持中文,可私有化部署,免费商用!

项目名称:Langchain-Chatchat
项目地址:https://github.com/chatchat-space/Langchain-Chatchat

2、解决的痛点

该项目是一个可以实现完全本地化推理的知识库增强方案, 重点解决数据安全保护,私域化部署的企业痛点。 本开源方案采用Apache License,可以免费商用,无需付费。

我们支持市面上主流的本地大语言模型和Embedding模型,支持开源的本地向量数据库。

3、Docker 部署

一行代码搞定,但是建议网速不好的同学不要尝试

docker run -d --gpus all -p 80:8501 isafetech/chatchat:0.2.10
docker run -d --gpus all -p 80:8501 ccr.ccs.tencentyun.com/chatchat/chatchat:0.2.10
docker run -d --gpus all -p 80:8501 registry.cn-beijing.aliyuncs.com/chatchat/chatchat:0.2.10

4、常规模式本地部署方案

4.1、环境配置

首先,确保你的机器安装了 Python 3.8 - 3.11 (我们强烈推荐使用 Python3.11)。

# 首先,确信你的机器安装了 Python 3.8 - 3.10 版本
$ python --version
Python 3.8.13

# 如果低于这个版本,可使用conda安装环境
$ conda create -p /your_path/env_name python=3.8

# 激活环境
$ source activate /your_path/env_name

# 或,conda安装,不指定路径, 注意以下,都将/your_path/env_name替换为env_name
$ conda create -n env_name python=3.8
$ conda activate env_name # Activate the environment

# 更新py库
$ pip3 install --upgrade pip

# 关闭环境
$ source deactivate /your_path/env_name

# 删除环境
$ conda env remove -p  /your_path/env_name

接着,创建一个虚拟环境,并在虚拟环境内安装项目的依赖

# 拉取仓库
$ git clone https://github.com/chatchat-space/Langchain-Chatchat.git

# 进入目录
$ cd Langchain-Chatchat

# 安装全部依赖
$ pip install -r requirements.txt 
$ pip install -r requirements_api.txt
$ pip install -r requirements_webui.txt  

# 默认依赖包括基本运行环境(FAISS向量库)。如果要使用 milvus/pg_vector 等向量库,请将 requirements.txt 中相应依赖取消注释再安装。
# 默认依赖包括基本运行环境(FAISS向量库)。以下是可选依赖:
- 如果要使用 milvus/pg_vector 等向量库,请将 requirements.txt 中相应依赖取消注释再安装。
- 如果要开启 OCR GPU 加速,请安装 rapidocr_paddle[gpu]
- 如果要使用在线 API 模型,请安装对用的 SDK

如果只需运行 WebUI,可执行:

$ pip install -r requirements_webui.txt

请注意,LangChain-Chatchat 0.2.x 系列是针对 Langchain 0.0.x 系列版本的,如果你使用的是 Langchain 0.1.x 系列版本,需要降级您的Langchain版本。

4.2、模型下载

如需在本地或离线环境下运行本项目,需要首先将项目所需的模型下载至本地,通常开源 LLM 与 Embedding 模型可以从 HuggingFace 下载。

以本项目中默认使用的 LLM 模型 THUDM/ChatGLM3-6B 与 Embedding 模型 BAAI/bge-large-zh 为例:

下载模型需要先安装 Git LFS ,然后运行

$ git lfs install
$ git clone https://huggingface.co/THUDM/chatglm3-6b
$ git clone https://huggingface.co/BAAI/bge-large-zh

4.3、初始化知识库和配置文件

按照下列方式初始化自己的知识库和简单的复制配置文件

$ python copy_config_example.py
$ python init_database.py --recreate-vs

4.4、一键启动

按照以下命令启动项目

$ python startup.py -a

4.5、启动界面示例

如果正常启动,你将能看到以下界面

在这里插入图片描述

在这里插入图片描述

5、 最轻模式本地部署方案

该模式的配置方式与常规模式相同,但无需安装 torch 等重依赖,通过在线API实现 LLM 和 Ebeddings 相关功能,适合没有显卡的电脑使用。

$ pip install -r requirements_lite.txt
$ python startup.py -a --lite

在这里插入图片描述


不要停止奔跑,不要回顾来路,来路无可眷恋,值得期待的只有前方。


<think>嗯,用户想了解如何搭建本地大模型知识库。首先,我需要理清楚搭建的主要步骤,然后分步骤解释。可能要从硬件软件需求开始,然后是选择模型,数据准备,部署,知识库构建,优化测试,最后维护。每个步骤都需要详细说明,但又要保持简洁,避免用户被过多细节淹没。 硬件方面,GPU是必须的,特别是大模型需要显存。比如NVIDIA的A100或者RTX 3090。内存存储也不能少,用户可能需要知道至少需要多少RAM存储空间。软件环境的话,Python、PyTorch或TensorFlow,还有Hugging Face的库,这些都是常用的。不过用户可能对这些工具不太熟悉,需要简单解释一下它们的作用。 模型选择部分,得列举几个常用的大模型,比如LLaMA、ChatGLM,还有Hugging Face的模型库。用户可能不知道这些模型的特点,需要说明它们的适用场景,比如中英文支持、资源消耗等。可能需要提醒用户根据计算资源选择合适的模型,比如7B参数的模型需要多少显存,帮助用户做决策。 数据准备是关键,用户可能有自己的数据,但需要清洗预处理。格式转换也很重要,比如转成JSON或者文本文件。可能还要提到数据增强的方法,比如去重、分词,或者使用正则表达式清洗数据。这部分用户可能需要具体例子,但暂时先点到为止,后续可以深入。 模型部署方面,Hugging Face的Transformers库是常用的,加载预训练模型,然后进行微调。微调需要准备数据集,设置训练参数。这里可能需要解释一下微调的概念,以及为什么需要微调。另外,量化技术可以降低资源消耗,比如使用bitsandbytes库,但会影响精度,需要权衡。 构建知识库的话,向量数据库如Faiss或Milvus,这些可能用户不太熟悉,需要说明它们的作用,即将文本向量化后存储,方便检索。RAG技术结合检索生成,提升回答的准确性。这里可能需要简单说明RAG的工作原理,比如先检索相关文档,再生成回答。 优化测试部分,性能监控工具如NVIDIA的Nsight,帮助用户优化模型。测试时需要多角度验证,确保回答正确。用户可能需要知道具体测试的方法,比如人工检查或自动化测试。 长期维护方面,定期更新数据模型,监控资源使用情况。用户可能关心如何更新模型,是否需要重新训练,或者增量训练。安全性隐私保护也很重要,特别是处理敏感数据时,要提醒用户加密权限控制。 常见问题里,资源不足的解决办法,比如模型量化或分布式训练。中文支持可能需要用特定的模型或自己微调。处理专业领域数据需要领域适配,可能要用领域内的数据进行微调。 整个流程下来,要确保逻辑清晰,步骤明确,同时考虑用户可能的疑问点,提前给出解答。避免使用太多技术术语,或者适当解释术语,让不同技术背景的用户都能理解。可能还需要推荐一些工具库,帮助用户快速上手。最后提醒用户根据实际情况调整,比如资源有限时的替代方案。</think>### 本地大模型知识库搭建指南 #### 1. **硬件与软件准备** - **硬件需求** - **GPU**:建议使用显存≥24GB的显卡(如NVIDIA A100、RTX 3090/4090),显存不足时可选择模型量化或分布式训练。 - **内存**:推荐≥64GB RAM。 - **存储**:预留≥500GB SSD空间(用于存储模型、数据集及向量数据库)。 - **软件环境** - **操作系统**:Linux(推荐Ubuntu 22.04)或Windows WSL2。 - **依赖库**:Python 3.8+、PyTorch/TensorFlow、Hugging Face Transformers、LangChain等。 - **工具链**:Docker(可选)、CUDA/cuDNN(GPU加速必需)。 #### 2. **模型选择与部署** - **模型选型** - **开源大模型**: - LLaMA-2(7B/13B参数,需申请权限) - ChatGLM3-6B(中英双语,显存需求低) - Falcon-40B(商用友好,需高性能硬件) - **轻量化模型**: - 使用Hugging Face Model Hub搜索适配场景的模型(如`bert-base-chinese`)。 - **部署流程** 1. 下载预训练模型权重(Hugging Face或官方渠道)。 2. 加载模型: ```python from transformers import AutoModel, AutoTokenizer model = AutoModel.from_pretrained("THUDM/chatglm3-6b", trust_remote_code=True) tokenizer = AutoTokenizer.from_pretrained("THUDM/chatglm3-6b") ``` 3. 使用量化技术(如4-bit/8-bit)降低显存占用: ```python model = model.quantize(4) # 4-bit量化示例 ``` #### 3. **数据准备与处理** - **知识数据来源** - 结构化数据:数据库导出的CSV/JSON文件。 - 非结构化数据:PDF、Word、网页爬虫数据(需文本提取)。 - **数据清洗** - 去噪:移除HTML标签、特殊符号、乱码。 - 分词:使用jieba(中文)或spaCy(英文)。 - 向量化:通过BERT等模型生成文本嵌入(Embedding)。 ```python from sentence_transformers import SentenceTransformer encoder = SentenceTransformer("paraphrase-multilingual-MiniLM-L12-v2") embeddings = encoder.encode(["文本示例1", "文本示例2"]) ``` #### 4. **构建知识库系统** - **向量数据库选型** - **本地部署**:Faiss(轻量级)、Milvus(分布式支持)。 - **云服务**:Pinecone(付费,免运维)。 - **检索增强生成(RAG)** 1. 将知识数据存入向量数据库: ```python import faiss index = faiss.IndexFlatL2(embeddings.shape[1]) index.add(embeddings) ``` 2. 提问时先检索相关文档,再输入大模型生成答案: ```python query_embedding = encoder.encode(["用户问题"]) distances, indices = index.search(query_embedding, k=3) # 返回Top3相关结果 context = [knowledge_base[i] for i in indices[0]] answer = model.generate(context, query) ``` #### 5. **优化与测试** - **性能优化** - 使用vLLM加速推理(吞吐量提升5-10倍)。 - 采用HTTP API封装模型服务(FastAPI框架)。 - **效果验证** - 测试集覆盖:事实性问题、逻辑推理、多轮对话。 - 评估指标:回答准确率、响应延迟(RT≤3秒为佳)。 #### 6. **长期维护** - **数据更新**:定期增量导入新知识,重新生成向量索引。 - **模型迭代**:监控日志,根据用户反馈微调模型(LoRA/P-Tuning)。 - **安全防护**: - 输入过滤:防止Prompt注入攻击。 - 访问控制:API密钥验证+IP白名单。 --- ### 常见问题解答 1. **资源不足怎么办?** - 使用量化模型(如ChatGLM3-6B-INT4),显存需求可降至6GB。 - 采用CPU推理(速度下降,需开启OpenBLAS优化)。 2. **如何支持中文?** - 优先选择多语言模型(如mT5、ChatGLM3),或对英文模型进行SFT微调。 3. **专业领域适配?** - 领域数据微调:准备1k-10k条领域QA对,使用LoRA高效微调。 --- > **提示**:若需低成本启动,可先尝试LM Studio(桌面端离线运行LLM)或Ollama(Mac/Linux一键部署)。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

hhzz

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值