手把手教你搭建本地知识库问答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 复制代码
$ python --version
Python 3.10.13

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

python 复制代码
wget https://www.python.org/ftp/python/3.10.13/Python-3.10.13.tgz
sudo 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-dev
mkdir -p /home/xaccel/Documents/chatchat/python310/
./configure --prefix=/home/xaccel/Documents/chatchat/python310/ --with-ssl --enable-optimizations
make
make install
sudo ln -sf ~/Documents/chatchat/python310/bin/python3.10 /usr/bin/python3
sudo ln -sf ~/Documents/chatchat/python310/bin/pip3.10 /usr/bin/pip3

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

python 复制代码
# 拉取仓库
$ 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

python 复制代码
wget https://github.com/milvus-io/milvus/releases/download/v2.1.4/milvus-standalone-docker-compose.yml -O docker-compose.yml

启动向量数据库milvus

python 复制代码
sudo docker-compose up -d

下载开源模型

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

以本项目中默认使用的 LLM 模型 THUDM/ChatGLM3-6B 与 Embedding 模型

jinaai/jina-embedding-l-en-v1 为例:

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

python 复制代码
$ 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 复制代码
$ 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_MODEL
EMBEDDING_MODEL = "jina-embedding-l-en-v1"
 
# 修改默认LLM
LLM_MODEL = "chatglm3-6b"

初始化数据库

python 复制代码
$ python init_database.py --recreate-vs

一键启动聊天机器人

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

python 复制代码
$ python startup.py -a

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

langchain-chatchat启动画面

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

本地知识库聊天机器人

===

聊天机器人使用说明

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

1、对话

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

可选四种对话模式

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

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

选择对话知识库

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

2、知识库管理

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

知识库管理

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

新建知识库

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

上传文件到知识库

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

删除知识库

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

和知识库聊天

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

最后的最后

感谢你们的阅读和喜欢,我收藏了很多技术干货,可以共享给喜欢我文章的朋友们,如果你肯花时间沉下心去学习,它们一定能帮到你。

因为这个行业不同于其他行业,知识体系实在是过于庞大,知识更新也非常快。作为一个普通人,无法全部学完,所以我们在提升技术的时候,首先需要明确一个目标,然后制定好完整的计划,同时找到好的学习方法,这样才能更快的提升自己。

这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

大模型知识脑图

为了成为更好的 AI大模型 开发者,这里为大家提供了总的路线图。它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。

经典书籍阅读

阅读AI大模型经典书籍可以帮助读者提高技术水平,开拓视野,掌握核心技术,提高解决问题的能力,同时也可以借鉴他人的经验。对于想要深入学习AI大模型开发的读者来说,阅读经典书籍是非常有必要的。

实战案例

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

面试资料

我们学习AI大模型必然是想找到高薪的工作,下面这些面试题都是总结当前最新、最热、最高频的面试题,并且每道题都有详细的答案,面试前刷完这套面试题资料,小小offer,不在话下

640套AI大模型报告合集

这套包含640份报告的合集,涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,这套报告合集都将为您提供宝贵的信息和启示。

这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

这份完整版的AI大模型全套学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】
相关推荐
大数据AI人工智能培训专家培训讲师叶梓26 分钟前
基于模型内部的检索增强型生成答案归属方法:MIRAGE
人工智能·自然语言处理·性能优化·大模型·微调·调优·检索增强型生成
AI原吾1 小时前
构建灵活、高效的HTTP/1.1应用:探索h11库
网络·python·网络协议·http·ai·h11
中杯可乐多加冰1 小时前
【AI应用落地实战】智能文档处理本地部署——可视化文档解析前端TextIn ParseX实践
人工智能·深度学习·大模型·ocr·智能文档处理·acge·textin
YRr YRr2 小时前
引入了窥视孔连接(peephole connections)的LSTM
人工智能·rnn·lstm
小城哇哇2 小时前
【AI多模态大模型】基于AI的多模态数据痴呆病因鉴别诊断
人工智能·ai·语言模型·llm·agi·多模态·rag
懒惰才能让科技进步2 小时前
从零学习大模型(九)-----P-Tuning(下)
人工智能·深度学习·学习·chatgpt·prompt·transformer
wait,what?2 小时前
【ROS概述】C++运行hello world
机器人·ros
龙萱坤诺2 小时前
AI自动评论插件V1.3 WordPress插件 自动化评论插件
运维·人工智能·自动化
BH042509092 小时前
VQ-VAE(2018-05:Neural Discrete Representation Learning)
人工智能·计算机视觉
蜡笔小新星2 小时前
PyTorch的基础教程
开发语言·人工智能·pytorch·经验分享·python·深度学习·学习