前言
没有知识库喂养的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%免费
】