# ai-rag **Repository Path**: wingahi/ai-rag ## Basic Information - **Project Name**: ai-rag - **Description**: 知识库管理及搜索,结合大模型输出结果 - **Primary Language**: Python - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-09-24 - **Last Updated**: 2025-09-24 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # AI-RAG智能检索系统 一个基于Retrieval-Augmented Generation (RAG) 技术的智能检索系统,能够高效地检索文档内容、订单数据并生成智能回答。支持多种数据源和检索模式。 ## 技术栈 - **后端**: Python 3.10+, FastAPI, LangChain, ChromaDB, OpenAI API, DeepSeek API, MySQL - **前端**: Vue 3, Element Plus, Vite, Axios ## 功能特性 - 📁 知识库集合管理(创建、删除集合) - 📄 文档上传与处理(支持PDF、TXT、DOCX格式) - 📊 订单知识库集成(从MySQL数据库自动同步订单数据) - 🔍 智能语义搜索(基于向量相似度) - 🤖 基于检索结果的智能回答(集成OpenAI/DeepSeek LLM) - 📝 搜索历史记录管理 - 🎨 现代化用户界面(响应式设计) - ⚡ 定期自动更新订单知识库 - 🔄 自动降级机制(API调用失败时的备选方案) - 📜 左右内容区域独立滚动查看(优化用户体验) ## 安装指南 ### 前提条件 - 安装Python 3.10+和Node.js 16+ - 获取OpenAI API密钥或DeepSeek API密钥(用于文本嵌入和生成回答) - 配置MySQL数据库(用于存储和检索订单数据) ### 后端安装 1. 克隆项目仓库 ```bash cd /Users/joe.wen/Desktop/ai-code/ai-rag ``` 2. 创建Python虚拟环境 ```bash python -m venv venv ``` 3. 激活虚拟环境 ```bash # macOS/Linux source venv/bin/activate # Windows venv\Scripts\activate ``` 4. 安装Python依赖 ```bash pip install -r requirements.txt ``` 5. 配置环境变量 ```bash cp .env.example .env # 编辑.env文件,填入你的API密钥和数据库配置 ``` 环境变量说明: ``` # OpenAI/DeepSeek API配置 OPENAI_API_KEY=your_api_key_here OPENAI_API_BASE=https://api.deepseek.com/v1 LLM_MODEL=deepseek-chat EMBEDDING_MODEL=deepseek-embed-text # MySQL数据库配置 MYSQL_HOST=localhost MYSQL_PORT=33066 MYSQL_USER=root MYSQL_PASSWORD=your_password_here MYSQL_DB=ai_rag # 向量存储配置 CHROMA_DB_PATH=data/chroma_db ``` ### 前端安装 1. 安装Node.js依赖 ```bash npm install ``` ## 运行指南 ### 启动后端服务 ```bash # 确保已激活虚拟环境 source venv/bin/activate # macOS/Linux # 或 venv\Scripts\activate # Windows # 运行FastAPI服务 python app.py ``` 后端服务将在 http://localhost:8000 启动。 ### 启动前端服务 ```bash npm run dev ``` 前端服务将在 http://localhost:3000 启动。 ## 项目结构 ``` ai-rag/ ├── app.py # 后端主应用入口 ├── vector_store.py # 向量存储管理模块 ├── llm_wrapper.py # LLM调用包装器 ├── mysql_manager.py # MySQL数据库连接管理 ├── order_knowledge_base.py # 订单知识库管理 ├── requirements.txt # Python依赖列表 ├── .env.example # 环境变量示例 ├── .gitignore # Git忽略配置 ├── index.html # Vite入口HTML ├── package.json # NPM依赖配置 ├── vite.config.js # Vite配置 ├── data/ # 数据存储目录 │ ├── chroma_db/ # ChromaDB向量存储 │ └── uploads/ # 上传的文档文件 └── src/ # 前端源码 ├── main.js # Vue应用入口 └── App.vue # 主组件 ``` ## API文档 启动后端服务后,可以访问以下URL查看API文档: - Swagger UI: http://localhost:8000/docs - ReDoc: http://localhost:8000/redoc ## 使用说明 1. **创建知识库集合**:在左侧面板点击"创建集合"按钮,输入集合名称和描述。 2. **上传文档**:选择一个集合,点击下拉菜单中的"上传文档",选择要上传的文件(支持PDF、TXT、DOCX)。 3. **智能搜索**:选择一个集合,在搜索框中输入问题,点击搜索按钮或按回车键。 4. **查看结果**:搜索结果将显示智能回答和相关文档片段,可展开查看详细内容。搜索结果区域已优化,能够正确显示文档数量并支持独立滚动。 5. **管理历史记录**:系统会保存最近10条搜索历史,可点击历史记录快速重复搜索。 6. **订单数据查询**:系统会自动同步MySQL数据库中的订单数据到向量知识库,可直接搜索订单相关问题。 7. **滚动优化**:页面左侧知识库管理面板和右侧内容区域均支持独立上下滚动,方便查看大量内容。 ## 注意事项 - 首次使用需要配置有效的API密钥和MySQL数据库连接信息。 - 上传的文档会被分割成小块并存储在向量数据库中。 - 文档处理和向量生成可能需要一些时间,具体取决于文档大小。 - 系统启动时会自动更新订单知识库,也可以通过接口手动触发更新。 - 建议定期备份`data`目录,以防止数据丢失。 - 当DeepSeek API调用失败时,系统会自动切换到备选的简单嵌入方法。 ## License MIT