查看原文
其他

Langchain-Chatchat:一种高效的开源知识库应用解决方案

Lcpsky NewTech精选
2024-09-09

       

Langchain-Chatchat 是一个开源项目。该项目属于智能聊天机器人可以进行对话,同时具有文档导入向量数据库功能,允许用户使用文档以建立知识库,然后用户可以进行基于知识库的查询项目提供webui用户界面供用户使用,也提供api供其他程序调用。

快速上手  

1环境配置  

首先,确保你的机器安装了 Python 3.10

$ python --versionPython 3.10.12

 

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

# 拉取仓库$

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 中相应依赖取消注释再安装。

 

2模型下载  

如需在本地或离线环境下运行本项目,需要首先将项目所需的模型下载至本地,通常开源 LLM 与 Embedding 模型可以从 HuggingFace 下载。以本项目中默认使用的 LLM 模型 THUDM/ChatGLM2-6B 与 Embedding 模型 moka-ai/m3e-base 为例:

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

$ git lfs install

$ git clone https://huggingface.co/THUDM/chatglm2-6b

$ git clone https://huggingface.co/moka-ai/m3e-base

 

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

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

$ python copy_config_example.py

$ python init_database.py --recreate-vs

 

4 一键启动  

按照以下命令启动项目

$ python startup.py -a

 

注意事项  

项目离线部署需要下载好ChatGLM2,m3e-base 模型。在项目configs中的model_config.py中配置模型路径。

从清华云盘下载模型参数文件,放到本地chatglm2-6b仓库下。

清华大学云盘 (tsinghua.edu.cn)

m3e-base

中文文本嵌入模型m3e-base_数据集-飞桨AI Studio星河社区 (baidu.com)    

         

 

项目对服务器要求很高,因为chatglm2量化INT4要显存大于6G才能正常使用。使用pip install -r requirements.txt  安装依赖会安装cpu版本,会导致对话明显卡顿。因此安装过程中pytorch需要使用gpu版本。

pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple

pip install torch==2.0.0+cu118 torchvision==0.15.1+cu118 torchaudio==2.0.1+cu118 -f https://download.pytorch.org/whl/torch_stable.html

 

         

 

该项目的特点  

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

受 GanymedeNil 的项目 document.ai 和 AlexZhangji 创建的 ChatGLM-6B Pull Request 启发,建立了全流程可使用开源模型实现的本地知识库问答应用。本项目的最新版本中通过使用 FastChat 接入 Vicuna, Alpaca, LLaMA, Koala, RWKV 等模型,依托于 langchain 框架支持通过基于 FastAPI 提供的 API 调用服务,使用基于 Streamlit 的 WebUI 进行操作。

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

该项目的原理  

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

         

 

         
 

         

 

   

项目地址  

Github:    https://gitee.com/simplify-code/Langchain-Chatchat.git

使用说明  

l可以选择多种对话模式进行AI对话

目前支持的对话模式有:LLM对话,知识库问答,搜索引擎问答及自定义Agent文档。

可以自由选择LLM模型: zhipu,chatglm2-6b,OpenAI,Anthropic等模型。

l可以导入文档创建知识库,进行基于知识库的对话。初次使用此项目需要初始化数据库。    

完成文档导入后可以进行如下测试。可以选择知识库问答模式进行对话。

总结    

Langchain-Chatchat 项目是一个用 Python 开发的开源智能聊天机器人项目,在 Gitee 平台上托管。它使用深度学习技术实现自然语言处理和生成回复,并提供一个基础框架用于构建智能对话机器人应用。

         

 

   

继续滑动看下一个
NewTech精选
向上滑动看下一个

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存