# RAG_SYSTEM_DEMO **Repository Path**: jetwu/rag_system_demo ## Basic Information - **Project Name**: RAG_SYSTEM_DEMO - **Description**: 这是一个DEMO,基于 RAG (Retrieval-Augmented Generation) 架构的本地知识库问答系统。系统能够加载本地文档,通过向量检索找到相关内容,并结合 LLM 生成准确的回答。 用意是通过这个项目了解RAG的工作流程。 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 2 - **Created**: 2025-06-04 - **Last Updated**: 2025-06-04 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # RAG 问答系统 ## 1. 项目简介 这是一个基于 RAG (Retrieval-Augmented Generation) 架构的本地知识库问答系统。系统能够加载本地文档,通过向量检索找到相关内容,并结合 LLM 生成准确的回答。 本 RAG 系统主要包含以下几个核心组件: - 文档加载器(loaders):支持三种文件格式,txt、pdf、docx - 文本分割器(processors):将长文本分割成适合向量化的小片段 - 向量化模块(embeddings):基于 sentence-transformers 实现,把文本分割的文本块转换为向量 - 向量存储模块(vectorstore):基于 FAISS 实现 - 向量检索器(retriever):向量相似度检索实现,它是连接文档处理和 LLM 的桥梁 - 大语言模型接入(llm):LLM 接口模块 - RAG 核心模块(rag):RAG 具体实现,整合检索和生成 - Web 服务(server):提供 REST API 接口供用户查询 ### 项目结构 ``` rag_system/ # 项目根目录 ├── src/ # 源代码目录 │ ├── embeddings/ # 文本向量化模块 │ │ ├── base.py # 向量化基类 │ │ └── transformer_embedding.py # Transformer模型实现 │ ├── llm/ # 大语言模型模块 │ │ ├── base.py # LLM基类 │ │ ├── ollama_llm.py # Ollama模型实现 │ │ └── openai_llm.py # OpenAI模型实现 │ ├── loaders/ # 文档加载模块 │ │ ├── base.py # 加载器基类 │ │ └── document_loader.py # 文档加载实现 │ ├── processors/ # 文本处理模块 │ │ ├── base.py # 处理器基类 │ │ └── text_splitter.py # 文本分割实现 │ ├── rag/ # RAG核心模块 │ │ ├── base.py # RAG基类 │ │ └── simple_rag.py # RAG实现 │ ├── retriever/ # 检索模块 │ │ ├── base.py # 检索器基类 │ │ └── vector_retriever.py # 向量检索实现 │ └── server/ # Web服务模块 │ ├── config.py # 配置管理 │ ├── main.py # 服务入口 │ └── routers/ # API路由 ├── data/ # 数据目录 │ ├── documents/ # 文档存储 │ └── vector_store/ # 向量数据存储 └── tests/ # 测试代码目录 ``` ## 2. API 接口说明 ### 查询接口 - **URL**: `/query` - **Method**: `POST` - **Headers**: ``` Content-Type: application/json ``` - **Body**: ```json { "question": "什么是机器学习?", "k": 4 } ``` ## 3. 执行说明 ### 环境要求 - Python 3.8+ ### 安装依赖 ```bash pip install -r requirements.txt ``` ### 运行测试 ```bash python -m unittest discover tests ``` ### 运行系统 ```bash python run.py ```