基于Langchain-Chatchat + chatGLM3 轻松在本地部署一个知识库

前面三篇分别讲解了如何在本地环境部署大模型,那么今天简单的通过 Langchain-Chatchat 和 chatGLM3结合在本地环境搭建一套属于自己的大模型知识库。

往期llm系列文章

1. 参考

2. Langchain-Chatchat 介绍

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

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

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

本项目实现原理如下图所示,过程包括加载文件 -> 读取文本 -> 文本分割 -> 文本向量化 -> 问句向量化 -> 在文本向量中匹配出与问句向量最相似的 top k个 -> 匹配出的文本作为上下文和问题一起添加到 prompt中 -> 提交给 LLM生成回答

在这里插入图片描述
从文档处理角度来看,实现流程如下:
在这里插入图片描述

详细介绍参考官方README介绍。

3. 本地运行

3.1 硬件配置

  • 芯片:Apple M1 Pro
  • 内存:32 GB

3.2 配置环境

conda create -n chatglm2 python=3.11
conda activate chatglm2
cd /Users/joseph.wang/llm
#拉取仓库
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 中相应依赖取消注释再安装。

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

3.3 模型下载

cd /Users/joseph.wang/llm/Langchain-Chatchat
git lfs install
git clone https://huggingface.co/THUDM/chatglm3-6b
git clone https://huggingface.co/BAAI/bge-large-zh

在这里插入图片描述

3.4 初始化知识库和配置文件

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

python3 copy_config_example.py
python3 init_database.py --recreate-vs

3.5 配置文件修改

cd /Users/joseph.wang/llm/Langchain-Chatchat/configs
(chatglm2)  joseph.wang@joseph  ~/llm/Langchain-Chatchat/configs   master ±  tree -L 1
.
├── __init__.py
├── __pycache__
├── basic_config.py
├── basic_config.py.example
├── kb_config.py
├── kb_config.py.example
├── model_config.py
├── model_config.py.example
├── prompt_config.py
├── prompt_config.py.example
├── server_config.py
└── server_config.py.example

basic_config.pykb_config.pymodel_config.pyprompt_config.pyserver_config.py 这些文件都有不同的作用,由于我是用Mac M1来运行的,因为需要修改model_config.py这个文件。
编辑model_config.py,只修改如下部分,其他地方不用修改,或者根据自己的模型需要修改即可。

...
EMBEDDING_MODEL = "bge-large-zh"
...
EMBEDDING_DEVICE = "mps"
...
LLM_MODELS = ["chatglm3-6b"] #, "zhipu-api", "openai-api"]
...
LLM_DEVICE = "mps"
...
MODEL_PATH = {
  "embed_model": {
      ...
      "bge-large-zh": "/Users/joseph.wang/llm/Langchain-Chatchat/bge-large-zh",
      ...
   },
  "llm_model": {
       "chatglm3-6b": "/Users/joseph.wang/llm/Langchain-Chatchat/chatglm3-6b",
       ...
   },
   ...
   ...

3.6 一键启动

cd /Users/joseph.wang/llm/Langchain-Chatchat
python3 startup.py -a

在这里插入图片描述
内存消耗(会比较消耗内存)
在这里插入图片描述
启动过程如下
在这里插入图片描述
在这里插入图片描述

4. 使用

4.1 对话

示例1: 文字对话

在这里插入图片描述

示例2: 代码编写

在这里插入图片描述
虽然代码中有错误的部分,但是影响不大,运行起来没问题
在这里插入图片描述

示例3: 画图

在这里插入图片描述

在这里插入图片描述

4.2 知识库

创建知识库
在这里插入图片描述
填写知识库的信息和选择向量库的类型、模型(在model_config.py中已经定义了)
在这里插入图片描述
选择本地的文档
在这里插入图片描述
在这里插入图片描述

后台导入数据过程
在这里插入图片描述
想数据存放到向量库中
在这里插入图片描述

示例1: 知识库中搜索

在这里插入图片描述

  • 27
    点赞
  • 54
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值