ChatGLM系列七:LangChain+ChatGLM-6B

背景介绍

在开发过程中,我们经常会遇到需要构建基于本地知识库的问答系统的问题。这种系统需要能够根据用户提供的问题,在本地的知识库中查找并返回相关答案。然而,要实现这样的功能并不容易,涉及到语言模型的选择、知识库的管理以及问答的匹配和检索等核心问题。

今天要给大家推荐一个 GitHub 开源项目 imClumsyPanda/langchain-ChatGLM,该项目在 GitHub 有超过 13.5k Star,用一句话介绍该项目就是:“langchain-ChatGLM, local knowledge based ChatGLM with langchain | 基于本地知识库的 ChatGLM 问答”。

项目介绍

langchain-ChatGLM 提供了一种基于本地知识库的 ChatGLM(Chat with Generative Language Model)问答系统。该项目结合了langchain和ChatGLM-6B模型的思想,旨在构建一个可灵活应用于中文场景的开源问答系统。通过langchain-ChatGLM,我们可以轻松地将开源的语言模型与本地知识库相结合,实现对中文问答的支持。
ChatGLM系列七:LangChain+ChatGLM-6B_第1张图片

langchain-ChatGLM的主要功能包括:

• 基于本地知识库的问答:系统可以根据用户的提问,在本地的知识库中进行搜索,并返回相关的答案。

• 多模型支持:项目支持使用不同的语言模型,可以根据需求选择合适的模型进行使用。

• 离线私有化:可以将该问答系统部署在本地环境中,确保数据的安全性和隐私性。
ChatGLM系列七:LangChain+ChatGLM-6B_第2张图片
WebUI 知识库管理页面:
ChatGLM系列七:LangChain+ChatGLM-6B_第3张图片

下载代码和模型

git clone https://github.com/ExpressGit/langchain-ChatGLM.git
git clone https://huggingface.co/THUDM/chatglm-6b autodl-tmp/models_data/chatglm-6b
git clone https://huggingface.co/GanymedeNil/text2vec-base-chinese autodl-tmp/models_data/text2vec-base-chinese

安装依赖

pip install -r requirements.txt -i https://mirror.sjtu.edu.cn/pypi/web/simple
pip install protobuf==3.20.1
pip install peft
pip install --upgrade gradio
git lfs install

修改配置文件

在langchain-ChatGLM/configs/model_config.py中修改Embedding模型地址:

embedding_model_dict = {
    "ernie-tiny": "nghuyong/ernie-3.0-nano-zh",
    "ernie-base": "nghuyong/ernie-3.0-base-zh",
    "text2vec-base": "/root/autodl-tmp/models_data/text2vec-base-chinese",
    "text2vec": "GanymedeNil/text2vec-large-chinese",
}

在langchain-ChatGLM/configs/model_config.py中修改LLM模型名称和地址

LLM_MODEL = "chatglm-6b"
NO_REMOTE_MODEL = True
MODEL_DIR = "/root/autodl-tmp/models_data/"

在langchain-ChatGLM/webui.py中修改端口号为6006。

server_port=6006,

启动

python webui.py

langchain-ChatGLM WebUI成功部署,就可以导入自己的知识库进行测试了。
ChatGLM系列七:LangChain+ChatGLM-6B_第4张图片

你可能感兴趣的:(langchain)