# RAG_demo **Repository Path**: MR-XGM/rag_demo ## Basic Information - **Project Name**: RAG_demo - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-07-22 - **Last Updated**: 2026-07-23 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # RAG Demo 基于 FastAPI + PostgreSQL + Ollama 的检索增强生成(RAG)demo 项目。支持上传 PDF 文档,自动解析、分块、向量化,并通过大模型进行知识问答。 ## 技术栈 | 组件 | 技术 | |------|------| | Web 框架 | FastAPI(Python 3.14+) | | 数据库 | PostgreSQL 16 + pgvector | | 向量模型 | qwen3-embedding:8b(Ollama) | | 大语言模型 | qwen3:14b(Ollama) | | PDF 解析 | PyMuPDF | | 异步 ORM | SQLAlchemy + asyncpg | ## 快速开始 ### 1. 启动 PostgreSQL ```powershell docker compose up -d ``` ### 2. 配置环境变量 创建 `.env` 文件(参考 `.env.example`): ```env DATABASE_URL=postgresql+asyncpg://rag:rag123@localhost:5432/rag_demo OLLAMA_BASE_URL=http://localhost:11434 EMBEDDING_MODEL=qwen3-embedding:8b LLM_MODEL=qwen3:14b ``` ### 3. 初始化虚拟环境 ```powershell python -m venv .venv .\.venv\Scripts\Activate.ps1 pip install -r requirements.txt ``` ### 4. 初始化数据库 ```powershell # 先启用 pgvector 扩展 docker exec -it rag_postgres psql -U rag -d rag_demo -c "CREATE EXTENSION IF NOT EXISTS vector;" # 创建数据表 python -m app.init_db ``` ### 5. 启动服务 ```powershell uvicorn app.main:app --reload ``` 访问 `http://127.0.0.1:8000/docs` 查看 API 文档。 ## 接口说明 | 方法 | 路径 | 说明 | |------|------|------| | POST | `/files/upload` | 上传 PDF 文件,自动解析、分块、向量化入库 | | POST | `/chat` | 发送问题,基于已入库的知识进行回答 | | GET | `/` | 健康检查 | ## 项目结构 ``` app/ ├── api/ # API 路由层 ├── core/ # 配置和数据库连接 ├── models/ # SQLAlchemy 数据模型 ├── parsers/ # 文档解析器(PDF 等) ├── prompts/ # LLM 提示词模板 ├── repositories/ # 数据访问层 ├── schemas/ # Pydantic 数据验证模型 ├── services/ # 业务逻辑层 ├── utils/ # 工具函数 ├── init_db.py # 数据库初始化脚本 └── main.py # 应用入口 ```