3分钟上手llm-universe:从0到1搭建个人AI知识库

3分钟上手llm-universe:从0到1搭建个人AI知识库

【免费下载链接】llm-universe 本项目是一个面向小白开发者的大模型应用开发教程,在线阅读地址:https://datawhalechina.github.io/llm-universe/ 【免费下载链接】llm-universe 项目地址: https://gitcode.com/datawhalechina/llm-universe

你是否还在为海量文档检索效率低而烦恼?是否想拥有一个能理解你文件内容的智能助手?本文将带你3分钟快速入门llm-universe项目,从零开始搭建属于自己的个人AI知识库,让你轻松实现文档智能问答。

读完本文你将学会:

  • 快速安装部署llm-universe项目
  • 构建个人专属知识库
  • 实现智能问答功能
  • 掌握基础故障排查方法

项目简介

llm-universe是Datawhale开源的大模型应用开发教程项目,旨在帮助开发者快速掌握基于大型语言模型(LLM,Large Language Model)的应用开发技能。该项目提供了从基础理论到实际应用的完整学习路径,特别适合小白开发者入门。

项目主要包含以下核心内容:

  • 大模型基础理论知识
  • LLM API调用与开发
  • 知识库搭建技术
  • RAG(检索增强生成,Retrieval-Augmented Generation)应用构建
  • 系统评估与优化方法
  • 实际应用案例分析

LLM发展时间线

环境准备

硬件要求

llm-universe对硬件要求不高,个人电脑即可满足基本开发需求:

  • CPU:Intel 5代处理器或同等性能
  • 内存:至少4GB
  • 操作系统:Windows、macOS、Linux均可

软件依赖

项目基于Python开发,主要依赖以下软件包:

  • python>=3.9
  • pytorch>=2.0.0
  • langchain
  • chromadb
  • gradio

完整依赖列表可参考项目根目录下的requirements.txt文件。

快速安装

获取项目代码

首先,克隆项目代码库到本地:

git clone https://gitcode.com/datawhalechina/llm-universe
cd llm-universe

创建虚拟环境

推荐使用conda创建独立的虚拟环境,避免依赖冲突:

conda create -n llm-universe python==3.9.0
conda activate llm-universe
pip install -r requirements.txt

验证安装

安装完成后,可以通过运行以下命令验证环境是否配置成功:

# 启动Jupyter Notebook
jupyter notebook

在浏览器中打开Notebook后,尝试运行notebook/C2 使用 LLM API 开发应用/C2.ipynb中的示例代码,检查是否能够正常调用LLM API。

知识库搭建

数据准备

llm-universe支持多种格式的文档导入,包括PDF、Markdown、TXT等。项目默认提供了一些示例知识库数据:

你也可以添加自己的文档到data_base/knowledge_db/目录下,构建个人专属知识库。

知识库构建流程

知识库构建主要包括以下步骤:

  1. 文档加载:读取各种格式的文档
  2. 文本分割:将长文本切分为合适大小的片段
  3. 文本向量化:将文本转换为向量表示
  4. 向量存储:将向量存入向量数据库

知识库构建流程

项目提供了便捷的知识库构建脚本,位于notebook/C3 搭建知识库/C3.ipynb,只需运行相应代码即可完成知识库的构建。

核心代码示例:

from langchain.document_loaders import UnstructuredMarkdownLoader, PyMuPDFLoader
from langchain.text_splitter import RecursiveCharacterTextSplitter
from langchain.vectorstores import Chroma
from embedding.call_embedding import get_embedding

# 加载文档
loaders = [
    UnstructuredMarkdownLoader("data_base/knowledge_db/prompt_engineering/1. 简介 Introduction.md"),
    PyMuPDFLoader("data_base/knowledge_db/pumkin_book/pumpkin_book.pdf")
]
docs = []
for loader in loaders:
    docs.extend(loader.load())

# 文本分割
text_splitter = RecursiveCharacterTextSplitter(
    chunk_size=500, chunk_overlap=150)
split_docs = text_splitter.split_documents(docs)

# 向量化并存储
embeddings = get_embedding("m3e")  # 使用m3e嵌入模型
vectordb = Chroma.from_documents(
    documents=split_docs,
    embedding=embeddings,
    persist_directory="data_base/vector_db/chroma"
)
vectordb.persist()

启动应用

基本流程

llm-universe提供了多种示例应用,其中个人知识库助手是最常用的应用之一。启动应用的基本步骤如下:

  1. 准备API密钥:部分LLM需要API密钥才能使用
  2. 启动服务:运行应用启动脚本
  3. 访问界面:通过浏览器访问应用

启动个人知识库助手

个人知识库助手是一个基于RAG技术的应用,能够根据导入的文档内容回答用户问题。

个人知识库助手架构

启动命令:

cd notebook/C4 构建 RAG 应用
python run_gradio.py -model_name='chatglm_std' -embedding_model='m3e' -db_path='../../data_base/knowledge_db' -persist_path='../../data_base/vector_db'

启动成功后,会显示类似以下信息:

Running on local URL:  http://127.0.0.1:7860

打开浏览器访问显示的URL,即可看到应用界面:

应用启动界面

功能演示

知识库问答

个人知识库助手的核心功能是基于导入的文档内容回答用户问题。使用方法非常简单:

  1. 在输入框中输入你的问题
  2. 点击"提交"按钮
  3. 等待模型生成回答

问答功能演示

例如,我们可以问:"什么是RAG?",助手会基于知识库中的内容给出回答:

"RAG是检索增强生成的缩写,是一种结合信息检索和生成式AI的技术。它通过在生成回答前先从知识库中检索相关信息,提高回答的准确性和可靠性,同时减少模型幻觉。"

另一个示例,询问关于joyrl项目的信息:

joyrl项目问答演示

多模型支持

llm-universe支持多种LLM模型,包括:

  • OpenAI模型(gpt-3.5-turbo, gpt-4等)
  • 百度文心一言(ERNIE-Bot系列)
  • 讯飞星火(Spark系列)
  • 智谱AI(chatglm系列)

可以通过修改启动参数切换不同的模型:

# 使用GPT-3.5-turbo模型
python run_gradio.py -model_name='gpt-3.5-turbo' -embedding_model='openai'

# 使用文心一言模型
python run_gradio.py -model_name='ERNIE-Bot' -embedding_model='openai'

常见问题解决

API密钥配置

使用部分LLM模型需要API密钥,配置方法如下:

  1. 从相应的AI服务提供商处获取API密钥
  2. 创建.env文件,添加密钥信息:
OPENAI_API_KEY=你的OpenAI密钥
ZHIPUAI_API_KEY=你的智谱AI密钥
BAIDU_API_KEY=你的百度文心一言API_KEY
BAIDU_SECRET_KEY=你的百度文心一言SECRET_KEY
  1. 保存文件,重启应用

知识库更新

当添加新的文档到知识库后,需要更新向量数据库:

# 重新运行知识库构建代码
from database.create_db import create_db

create_db(files="../../data_base/knowledge_db", persist_directory="../../data_base/vector_db", embeddings="m3e")

性能优化

如果遇到应用响应缓慢的问题,可以尝试以下优化方法:

  1. 减少top_k参数值,减少检索文档数量
  2. 使用更小的模型,如chatglm_lite
  3. 增加chunk_size,减少文本片段数量
  4. 清理不必要的知识库文档

学习资源

llm-universe项目本身提供了丰富的学习资源:

此外,项目还提供了多个实际案例供学习参考:

总结与展望

通过本文的介绍,你已经了解了llm-universe项目的基本安装、配置和使用方法。这个项目不仅是一个工具,更是一个完整的学习路径,帮助你从LLM初学者成长为能够独立开发大模型应用的开发者。

后续学习建议:

  1. 深入学习RAG技术原理:docs/C1/C1.md
  2. 掌握LangChain框架使用:docs/C3/C3.md
  3. 学习自定义Embedding:docs/C3/附LangChain自定义Embedding封装讲解.md
  4. 探索高级RAG技巧:notebook/C7 高级 RAG 技巧/

希望本文能帮助你快速上手llm-universe项目,开启你的大模型应用开发之旅!如有任何问题,欢迎在项目仓库提交issue或参与Datawhale社区讨论。

谢谢你的阅读!如有任何问题,欢迎提问。

【免费下载链接】llm-universe 本项目是一个面向小白开发者的大模型应用开发教程,在线阅读地址:https://datawhalechina.github.io/llm-universe/ 【免费下载链接】llm-universe 项目地址: https://gitcode.com/datawhalechina/llm-universe

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值