你的位置:先锋娱乐 > 关于先锋娱乐 > Langchain-Chatchat:一种高效的开源知识库应用解决方案

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

发布日期:2024-07-22 10:05    点击次数:161

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 平台上托管。它使用深度学习技术实现自然语言处理和生成回复,并提供一个基础框架用于构建智能对话机器人应用。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报。

Powered by 先锋娱乐 @2013-2022 RSS地图 HTML地图