基于Langchain-chatchat搭建本地智能
- 搭建本地智能知识问答系统:基于Langchain-chatchat的实践指南
- 引言
- 项目概述
- 环境安装
- Anaconda
- pip
- 项目安装步骤
- 大语言模型(LLM)的重要性
- 结语
搭建本地智能知识问答系统:基于Langchain-chatchat的实践指南
引言
在数字化时代,企业对知识管理的需求日益增长。本地化的知识问答系统不仅能提升数据安全性,还能实现私域化部署,满足企业对数据保密和快速响应的需求。本文将介绍如何基于Langchain-chatchat搭建一个本地智能知识问答系统。
项目概述
基于 ChatGLM 等大语言模型与 Langchain 等应用框架实现,开一种利用 langchain 思想实现的基于本地知识库的问答应用,目标期望建立一套对中文场景与开源模型支持友好、可离线运行的知识库问答解决方案。
依托于本项目支持的开源 LLM 与 Embedding 模型,本项目可实现全部使用开源模型离线私有部署。与此同时,本项目也支持 OpenAI GPT API 的调用,并将在后续持续扩充对各类模型及模型API 的接入。
本项目实现原理如下图所示,过程包括加载文件 -> 读取文本 -> 文本分割 -> 文本向量化 -> 问句向量化 -> 在文本向量中匹配出与问句向量最相似的 -> 匹配出的文本作为上下文和问题一起添加打包-> 提交给LLM,最后生成回答。
强烈推荐使用 Python3.11,创建一个虚拟环境,并在虚拟环境内安装项目的依赖。需要注意电脑显存要大于12G,不然该项目跑不动。
该项目是一个可以实现完全本地化推理的知识库增强方案, 重点解决数据安全保护,私域化部署的企业痛点。本开源方案采用Apache License,可以免费使用,无需付费。
以下是搭建基于Langchain-chatchat的本地智能知识问答系统的流程图:
环境安装
Anaconda
Anaconda是一个流行的Python数据科学和机器学习平台,它通过提供集成的发行版和包管理器conda,简化了数据科学项目的设置和管理。Anaconda的主要功能包括包管理、环境管理、数据科学工具和库的预装以及跨平台支持。
# 创建新的环境
conda create--name环境名称
# 创建指定 Python 版本的环境
conda create--name环境名称python=版本号# 查看环境
condaenvlist
# 激活环境
conda activate 环境名称
# 删除环境
conda remove-n环境名称--all
# 安装指定包:
condainstall包名称
# 安装指定版本的包
condainstall包名称=版本号
# 安装多个包
condainstall包名称1 包名称2 包名称3 # 查看当前环境的所有包
conda list
# 卸载包
conda remove 包名称
pip
pip是一个现代的、通用的Python包管理工具,用于查找、下载、安装和卸载Python包。
# 安装库
pipinstallpackage-name
# 查看已安装的库
pip list
# 卸载库
pip uninstall package_name
项目安装步骤
- 通过Git克隆Langchain-Chatchat仓库。
- 进入目录并安装全部依赖。
- 使用git lfs安装模型下载资料包。
- 初始化配置和数据库。
# 拉取仓库
$ 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 中相应依赖取消注释再安装。
- 模型下载:
资料包
$ git lfs install
$ git clone https://huggingface.co/THUDM/chatglm3-6b $ git clone https://huggingface.co/BAAI/bge-large-zh 初始化
$ python copy_config_example.py
$ python init_database.py --recreate-vs
$ python startup.py -a
大语言模型(LLM)的重要性
LLM是利用机器学习技术理解和生成人类语言的AI模型。它们使用基于神经网络的模型和自然语言处理(NLP)技术,能够执行文本分析、情绪分析、语言翻译和语音识别等任务。
结语
基于Langchain-chatchat搭建的本地智能知识问答系统,不仅提供了一个开源的解决方案,还通过Apache License允许免费商用,无需付费。这为企业提供了一个高效、安全且成本效益高的知识管理工具。