Skip to content

topgoer/rag-in-action

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

65 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

RAG (Retrieval-Augmented Generation) 系统研发实战

本项目是一个基于 DeepSeek 的 RAG 系统实战课程的代码仓库,实现了一个完整的检索增强生成系统。

课程地址:RAG系统研发实战

基于DeepSeek的RAG系统研发实战课程架构图

技术框架

RAG技术框架

项目架构

项目采用模块化设计,每个模块负责 RAG 系统的不同方面:

模块 功能 技术栈 依赖
00-简单RAG-SimpleRAG 基础 RAG 系统实现 LangChain/LlamaIndex 基础环境
01-数据导入-DataLoading 数据加载和预处理 pandas, PyPDF2 文档解析库
02-文本切块-DocChunking 文档分块策略 LangChain Splitters NLP 工具
03-向量嵌入-Embedding 文本向量化 HuggingFace, BGE GPU 支持(可选)
04-向量存储-VectorDB 向量数据库操作 Milvus, Chroma 向量数据库
05-检索前处理-PreRetrieval 检索优化 Query Expansion NLP 工具
06-索引优化-Indexing 索引构建和优化 层次索引, 关键词索引 搜索引擎
07-检索后处理-PostRetrieval 检索结果优化 重排序, 过滤 ML 模型
08-响应生成-Generation 答案生成 LLM 集成 GPU 推荐
09-系统评估-Evaluation 系统性能评估 RAGAS, TruLens 评估框架
10-高级RAG-AdvanceRAG 高级 RAG 技术实现 Graph RAG, Multi-Agent 高级框架

环境要求

硬件要求

GPU 版本

  • NVIDIA GPU (建议 >= 8GB 显存)
  • CUDA 11.8 或更高版本
  • cuDNN 8.0 或更高版本

CPU 版本

  • 建议 >= 16GB RAM
  • 多核处理器(建议 >= 4 核)

软件要求

操作系统支持

  1. **Ubuntu **
  • 推荐使用 22.04 LTS
  1. MacOS (Intel/Apple Silicon)

    • Apple Silicon 可以使用 MPS 加速
  2. Windows 10/11

    • 推荐使用 WSL2 + Ubuntu

框架选择

  1. Python:3.10+

  2. LangChain 框架

    • 基础版:requirements_langchain_简单RAG(后续模块还要安装其它包).txt
    • 完整版(GPU):requirements_langchain_20250413(Ubuntu-with-GPU).txt
    • 完整版(CPU):requirements_langchain_无GPU版(Mac,Win).txt
  3. LlamaIndex 框架

    • 基础版:requirements_llamaindex_简单RAG(后续模块还要安装其它包).txt
    • 完整版(GPU):requirements_llamaindex_20250413(Ubuntu-with-GPU).txt
    • 完整版(CPU):requirements_llamaindex_无GPU版(Mac,Win).txt

环境配置

Ubuntu (GPU 版本+LangChain框架)

# 创建虚拟环境
python -m venv venv-rag-langchain
source venv-rag-langchain/bin/activate
## 或者使用conda
conda create -n venv-rag-langchain python=3.10.12
conda activate venv-rag-langchain

# 安装依赖
pip install -r 91-环境-Environment/requirements_langchain_20250413_Ubuntu-with-GPU.txt

Ubuntu (CPU 版本+LangChain框架)

# 创建虚拟环境
python -m venv venv-rag-langchain
source venv-rag-langchain/bin/activate
## 或者使用conda
conda create -n venv-rag-langchain python=3.10.12
conda activate venv-rag-langchain

# 安装依赖
pip install -r 91-环境-Environment/requirements_langchain_Ubuntu-with-CPU.txt

MacOS/Windows(CPU 版本+LangChain框架)

# 创建虚拟环境
python -m venv venv-rag-langchain
# Windows
.\venv-rag-langchain\Scripts\activate
# MacOS
source venv-rag-langchain/bin/activate
## 或者使用conda
conda create -n venv-rag-langchain python=3.10.12
conda activate venv-rag-langchain

# 安装依赖
pip install -r 91-环境-Environment/requirements_langchain_无GPU版_Mac-Win.txt

Ubuntu (GPU 版本+LlamaIndex框架)

# 创建虚拟环境
python -m venv venv-rag-llamaindex
source venv-rag-llamaindex/bin/activate
## 或者使用conda
conda create -n venv-rag-llamaindex python=3.10.12
conda activate venv-rag-lanllamaindexgchain

# 安装依赖
pip install -r 91-环境-Environment/requirements_llamaindex_20250413_Ubuntu-with-GPU.txt

Ubuntu (CPU 版本+LlamaIndex框架)

# 创建虚拟环境
python -m venv venv-rag-llamaindex
source venv-rag-llamaindex/bin/activate
## 或者使用conda
conda create -n venv-rag-llamaindex python=3.10.12
conda activate venv-rag-llamaindex

# 安装依赖
pip install -r 91-环境-Environment/requirements_llamaindex_Ubuntu-with-CPU.txt

MacOS/Windows(CPU 版本+LlamaIndex框架)

# 创建虚拟环境
python -m venv venv-rag-llamaindex
# Windows
.\venv-rag-llamaindex\Scripts\activate
# MacOS
source venv-rag-llamaindex/bin/activate
## 或者使用conda
conda create -n venv-rag-llamaindex python=3.10.12
conda activate venv-rag-llamaindex

# 安装依赖
pip install -r 91-环境-Environment/requirements_llamaindex_无GPU版_Mac-Win.txt

特殊依赖说明

  1. PDF 处理相关:

    • 使用 requirements_camelot_20250413.txt 安装 PDF 处理相关依赖
    • 可能需要额外安装系统级依赖:
      • Ubuntu: sudo apt-get install ghostscript python3-tk
      • MacOS: brew install ghostscript tcl-tk
      • Windows: 需要手动安装 Ghostscript
  2. 标注工具相关:

    • 使用 requirements_marker_20250413.txt 安装标注工具相关依赖

使用说明

  1. 选择合适的环境配置文件并安装依赖
  2. 按照模块顺序逐步学习和实践
  3. 每个模块都包含独立的示例和说明文档
  4. 建议先从 00-简单RAG-SimpleRAG 开始,逐步深入

注意事项

  1. GPU 版本需要确保 CUDA 环境配置正确
  2. 不同操作系统可能需要额外的系统级依赖
  3. 建议使用虚拟环境管理依赖
  4. 部分模块可能需要额外的模型下载或 API 密钥配置

常见问题

  1. CUDA 相关错误:检查 NVIDIA 驱动和 CUDA 版本是否匹配
  2. 内存不足:调整批处理大小或使用 CPU 版本
  3. 依赖冲突:使用虚拟环境并严格按照 requirements 文件安装

贡献指南

欢迎提交 Issue 和 Pull Request 来帮助改进项目。

佳哥项目 Star History 趋势

许可证

本项目采用 MIT 许可证。

About

极客时间RAG训练营, RAG 10大组件全面拆解, 4个实操项目吃透 RAG 全流程。

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Jupyter Notebook 72.7%
  • Python 27.3%