打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
手把手教你搭建本地知识库问答AI机器人

没有知识库喂养的AI,就像一个刚出大学校门的学生,有潜力但很多实际问题无法回答,而经过本地知识库加持的AI,那才是特定领域的专家,可以成为你的良师益友,协助你更好的解答实际问题。

现在的ChatGPT和Claude等AI都支持上传文档回答问题,但不是每个人都能使用。国内的大模型也有文档功能,测试下来效果不是很好。还有一点,不管国内还是国外的AI,允许上传的文档数量有限制,一般只允许上传一个文档提问,Claude属于比较慷慨,大概也只能上传10个文档。

抛开这些不说,知识库是数据,一些敏感的数据,现在大家还不是很放心交给别人,所以搭建一个本地的知识库聊天机器人,是很实际的刚需,尤其对于企业来说,就更是如此。

要在本地搭建一套知识库聊天系统,要做的工作真不少,感谢开源的Langchain-Chatchat,它让这一切变得相当简单。

Langchain-Chatchat既支持开源模型(需要硬件,如A6000),也支持OpenAI等开源模型(需要购买OpenAI的key)。

下面进入正题,手把手教大家基于Langchain-Chatchat,在本地搭建一个知识库聊天系统,把我的实践经验分享给你,避免一些踩过坑。

我使用的硬件和模型信息:

显卡:一块英伟达的A6000

LLM:开源的chatglm3-6b

向量模型:开源的jina-embedding-l-en-v1

向量数据库:开源的milvus

搭建本地知识库,并基于其进行AI聊天,原理和流程如下图:

知识库聊天机器人实现流程

环境准备

请注意,我搭建时,langchain-chatchat的版本是v0.2.6,不同的版本,相关的环境可能存在变化。

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

$ python --versionPython 3.10.13

如果未安装3.10,可从官网下载编译安装。

wget https://www.python.org/ftp/python/3.10.13/Python-3.10.13.tgzsudo apt install wget lzma liblzma-dev build-essential libncursesw5-dev libssl-dev libsqlite3-dev tk-dev libgdbm-dev libc6-dev libbz2-dev libffi-dev zlib1g-devmkdir -p /home/xaccel/Documents/chatchat/python310/./configure --prefix=/home/xaccel/Documents/chatchat/python310/ --with-ssl --enable-optimizationsmakemake installsudo ln -sf ~/Documents/chatchat/python310/bin/python3.10 /usr/bin/python3sudo ln -sf ~/Documents/chatchat/python310/bin/pip3.10 /usr/bin/pip3

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

# 拉取仓库$ git clone https://github.com/chatchat-space/Langchain-Chatchat.git # 进入目录$ cd Langchain-Chatchat #创建虚拟环境$ python3 -m venv myenv$ source myenv/bin/activate # 默认依赖包括基本运行环境(FAISS向量库)。如果要使用 milvus/pg_vector 等向量库,请将 requirements.txt 中相应依赖取消注释再安装。# 我们需要milvus数据库,修改requirements.txt$ vi requirements.txt# 找到行:# pymilvus==2.1.3,去除注释 # 安装全部依赖$ pip install -r requirements.txt

安装并运行milvus数据库

注意requirements.txt中的pymilvus版本是2.1.3,所以milvus也需要安装对应的版本,即milvus 2.1.x。

下载milvus 2.1.x

wget https://github.com/milvus-io/milvus/releases/download/v2.1.4/milvus-standalone-docker-compose.yml -O docker-compose.yml

启动向量数据库milvus

sudo docker-compose up -d

下载开源模型

langchain-chatchat支持开源模型和OpenAI等商用模型,我需要开源模型,先将开源大模型下载至本地,通常开源 LLM 与 Embedding 模型可以从 HuggingFace 下载。

以本项目中默认使用的 LLM 模型 THUDM/ChatGLM3-6B 与 Embedding 模型
jinaai/jina-embedding-l-en-v1 为例:

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

$ git lfs install # 将大模型下载到以下文件夹$ cd /xrepo/KDB/LLM/ChatMode # 下载大模型$ git clone https://huggingface.co/THUDM/chatglm3-6b$ git clone https://huggingface.co/jinaai/jina-embedding-l-en-v1

初始化知识库和配置文件

复制配置文件,并配置步骤二中下载的大模型

$ python copy_config_example.py # 修改模型配置文件$ vi configs/model_config.py # 设置大模型存放路径MODEL_ROOT_PATH = '/xrepo/KDB/LLM/ChatMode' # embed_model下增加:'jina-embedding-l-en-v1':'jinaai/jina-embedding-l-en-v1', # llm_model下增加:'chatglm3-6b': 'THUDM/chatglm3-6b', # 修改默认EMBEDDING_MODELEMBEDDING_MODEL = 'jina-embedding-l-en-v1' # 修改默认LLMLLM_MODEL = 'chatglm3-6b'

初始化数据库

$ python init_database.py --recreate-vs

一键启动聊天机器人

安装完成,输入以下命令启动

$ python startup.py -a

看到下面画面后,表示正常启动了

langchain-chatchat启动画面

在浏览器输入聊天机器人地址:http://127.0.0.1:8561

本地知识库聊天机器人

聊天机器人使用说明

打开Web地址后,左侧可看见两个菜单,分别是“对话”和“知识库管理”

1、对话

即和AI聊天对话,可选择对话模式,LLM模型,prompt模板,温度参数设定以及记忆保留次数。对话模式有四个选项:LLM对话、知识库问答、搜索引擎问答、自定义Agent。

可选四种对话模式

LLM对话是和大模型直接聊天,基于大模型的通用能力。

知识库问答需要先创建知识库,每次可选择一个知识库进行聊天,切换到知识库问答后,在底部“知识库配置”中选择要对话的知识库。

选择对话知识库

搜索引擎问答和自定义Agent,需要进行相应配置和开发,才能使用。

2、知识库管理
切换到知识库管理后,可以查看和删除已创建知识库、新增知识库,也可以对知识库进行文件增减。

知识库管理

新建知识库:点击“新建知识库”,输入知识库名称和简介,选择向量数据库和模型,再点击新建即可。

新建知识库

上传文件到知识库:选择已创建知识库,选择上传文件,点击“添加文件到知识库”

上传文件到知识库

删除知识库/删除知识库文件:见下图

删除知识库

创建好知识库后,可以切换菜单到“对话”,选择对话模式为“知识库问答”,并选择要对话的知识库,即可开启和特定知识库聊天。

和知识库聊天

大功告成,本地知识库聊天系统搭建完成,想用别的模型,可以直接在界面上切换,大部分开源模型都支持,只要你的硬件够牛~

全文完,有疑问可以留言,我会尽量回答,如果觉得有帮助,就点个赞呗~

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
Langchain-Chatchat:一种高效的开源知识库应用解决方案
5个助你搭建私有AI机器人的开源项目
几分钟开发 AI 应用成为可能,为什么说大模型中间件是 AI 必备软件?
中金 | AI Answer:大模型助力B端落地先行范式
一个厉害的中医GPT,AI老中医开源了!
知识图谱与大模型结合方法概述
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服