手把手教你搭建本地知识库问答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%免费】
相关推荐
Mintopia8 小时前
OpenClaw 对软件行业产生的影响
人工智能
陈广亮8 小时前
构建具有长期记忆的 AI Agent:从设计模式到生产实践
人工智能
会写代码的柯基犬8 小时前
DeepSeek vs Kimi vs Qwen —— AI 生成俄罗斯方块代码效果横评
人工智能·llm
Mintopia9 小时前
OpenClaw 是什么?为什么节后热度如此之高?
人工智能
爱可生开源社区9 小时前
DBA 的未来?八位行业先锋的年度圆桌讨论
人工智能·dba
叁两12 小时前
用opencode打造全自动公众号写作流水线,AI 代笔太香了!
前端·人工智能·agent
前端付豪12 小时前
LangChain记忆:通过Memory记住上次的对话细节
人工智能·python·langchain
strayCat2325512 小时前
Clawdbot 源码解读 7: 扩展机制
人工智能·开源