动手学大模型LLM应用开发之个人知识库助手项目

本文介绍了由datawhale成员开发的项目,构建了一个知识问答系统,利用LLMAPI、嵌入API和向量数据库,详细描述了项目架构、安装与运行过程,包括RAG过程和解决Windows上安装问题的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、前言

本项目由datawhale成员开发,主要实现了基于 Datawhale 的现有项目 README 的知识问答,使用户可以快速了解 Datawhale 现有项目情况。
项目地址

二、项目架构

在这里插入图片描述
① LLM 层主要基于四种流行 LLM API 进行了 LLM 调用封装,支持用户以统一的入口、方式来访问不同的模型,支持随时进行模型的切换;

② 数据层主要包括个人知识库的源数据以及 Embedding API,源数据经过 Embedding 处理可以被向量数据库使用;

③ 数据库层主要为基于个人知识库源数据搭建的向量数据库,在本项目中我们选择了 Chroma;

④ 应用层为核心功能的最顶层封装,我们基于 LangChain 提供的检索问答链基类进行了进一步封装,从而支持不同模型切换以及便捷实现基于数据库的检索问答;

⑤ 最顶层为服务层,我们分别实现了 Gradio 搭建 Demo 与 FastAPI 组建 API 两种方式来支持本项目的服务访问。

三、项目搭建运行

git clone https://github.com/logan-zou/Chat_with_Datawhale_langchain.git
cd Chat_with_Datawhale_langchain
# 创建 Conda 环境
conda create -n llm-zszs python==3.9.0
# 激活 Conda 环境
conda activate llm-universe
# 安装依赖项
pip install -r requirements.txt

在windows中安装遇到报错
在这里插入图片描述
这些警告和错误提示表明你在尝试通过HTTPS连接到PyPI(Python Package Index),但连接时出现了SSL错误。这可能是由于网络问题或SSL配置问题引起的。
解决这个问题的一种方法是确保你的网络连接正常,并且你的系统时间和日期设置正确。有时候SSL错误也可能是由于系统时间不准确导致的。

检查下网络,发现我开了代理,关了代理换用清华源镜像下载

pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple

在这里插入图片描述
出现了上图报错,报错显示由于在 Windows 上使用了不支持的库。 uvloop 库不支持在 Windows 平台上使用。

因此换成在linux中安装,这里我用的是windows中的linux子系统wsl。
在这里插入图片描述
如上图,安装发现langchain、langsmith、packaging存在冲突
于是修改requirements.txt,将这几个包不指定版本,让pip自行处理
重新自行安装命令pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
在这里插入图片描述
环境搭建成功!!!

启动服务为本地 API

uvicorn api:app --reload 

运行项目

python run_gradio.py -model_name='chatglm_std' -embedding_model='m3e' -db_path='../data_base/knowledge_db' -persist_path='../data_base/vector_db'

运行成功

在这里插入图片描述

四、RAG过程

该项目实现原理和一般 RAG 项目一样,主要流程如下

1.用户提出问题 Query

2.加载和读取知识库文档

3.对知识库文档进行分割

4.对分割后的知识库文本向量化并存入向量库建立索引

5.对问句 Query 向量化

6.在知识库文档向量中匹配出与问句 Query 向量最相似的 top k 个

7.匹配出的知识库文本文本作为上下文 Context 和问题⼀起添加到 prompt 中

8.提交给 LLM 生成回答 Answer

五、参考资料

链接: llm-universe

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值