# doc-lib **Repository Path**: oyjf518/doc-lib ## Basic Information - **Project Name**: doc-lib - **Description**: 一个文档整理软件 - **Primary Language**: JavaScript - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-06-30 - **Last Updated**: 2025-06-30 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 资料库Web应用 一个包含文件管理、查询和智能问答功能的全栈应用。 ## 功能特点 - **文件管理**:支持批量上传PDF文件,设置分类和标签,在线查看和下载 - **文件查询**:按关键字模糊搜索,精确定位到文件和页数 - **智能问答**:AI助手原型界面,支持基于文档内容的问答 - **PDF渲染**:使用Canvas技术在线渲染PDF内容 - **全文检索**:解析PDF文本内容,支持快速搜索定位 ## 技术栈 - **前端**:Vue3 + Element-Plus + TailwindCSS + Pinia + Vue Router + TypeScript + Canvas(渲染PDF) - **后端**:Python + Flask + Flask-CORS - **数据库**:SQLite - **PDF处理**:PyPDF2 + pdfminer.six - **构建工具**:Vite ## 项目结构 ``` /doc-lib ├── frontend/ # Vue3前端应用 │ ├── src/ │ │ ├── components/ # 公共组件 │ │ ├── views/ # 页面组件 │ │ ├── stores/ # Pinia状态管理 │ │ ├── utils/ # 工具函数 │ │ ├── types/ # TypeScript类型定义 │ │ └── router/ # 路由配置 │ ├── package.json │ └── vite.config.ts ├── backend/ # Flask后端API │ ├── app.py # 主应用文件 │ ├── requirements.txt # Python依赖 │ └── uploads/ # 文件上传目录 ├── docs/ # 项目文档 └── README.md ``` ## 快速开始 ### 环境要求 - Node.js 16+ - Python 3.8+ - npm 或 yarn ### 后端安装 1. 进入后端目录: ```bash cd backend ``` 2. 创建虚拟环境(推荐): ```bash python -m venv venv source venv/bin/activate # Linux/Mac # 或 venv\Scripts\activate # Windows ``` 3. 安装依赖: ```bash pip install -r requirements.txt ``` 4. 启动后端服务: ```bash python app.py ``` 后端服务将在 `http://localhost:5000` 启动 ### 前端安装 1. 进入前端目录: ```bash cd frontend ``` 2. 安装依赖: ```bash npm install # 或 yarn install ``` 3. 启动开发服务器: ```bash npm run dev # 或 yarn dev ``` 前端应用将在 `http://localhost:3000` 启动 ## 使用说明 ### 文件管理 1. 点击"上传文件"按钮 2. 选择或拖拽PDF文件到上传区域 3. 设置文件分类和标签 4. 点击上传,系统会自动解析PDF内容 5. 在文件列表中查看、下载或删除文件 ### 文件查询 1. 在搜索框中输入关键字 2. 系统会在所有PDF文档中搜索匹配内容 3. 点击搜索结果可直接跳转到对应文件和页面 ### 智能问答 1. 在聊天界面输入问题 2. AI助手会基于文档内容回答问题 3. 支持多轮对话和上下文理解 ### PDF查看器 1. 支持单页和连续浏览模式 2. 可以缩放、跳转页面 3. 显示文档的文本内容用于搜索和复制 4. 支持下载原始PDF文件 ## API接口 ### 文件管理 - `POST /api/upload` - 批量上传PDF文件 - `GET /api/files` - 获取文件列表 - `GET /api/files/` - 获取文件详情和内容 - `GET /api/download/` - 下载原始文件 - `GET /api/categories` - 获取所有分类 ### 搜索 - `GET /api/search?keyword=` - 搜索文件内容 ## 数据库结构 ### files表 - id: 文件ID - filename: 存储文件名 - original_filename: 原始文件名 - file_path: 文件路径 - category: 分类 - tags: 标签 - upload_time: 上传时间 - file_size: 文件大小 - page_count: 页数 ### page_contents表 - id: 记录ID - file_id: 文件ID(外键) - page_number: 页码 - content: 页面文本内容 ### text_positions表 - id: 记录ID - file_id: 文件ID(外键) - page_number: 页码 - text_content: 文本内容 - x, y: 文本位置坐标 - width, height: 文本尺寸 ## 开发说明 ### 前端开发 - 使用Vue3 Composition API - TypeScript提供类型安全 - Element Plus组件库 - Tailwind CSS样式框架 - Pinia状态管理 - Vite构建工具 ### 后端开发 - Flask轻量级Web框架 - SQLite数据库(可扩展为PostgreSQL/MySQL) - PyPDF2和pdfminer.six处理PDF文件 - Flask-CORS处理跨域请求 ### PDF处理 - 使用pdfminer.six提取文本和位置信息 - PyPDF2获取页数等元数据 - 前端使用Canvas模拟PDF渲染(可集成PDF.js) ## 部署说明 ### 生产环境部署 1. 前端构建: ```bash cd frontend npm run build ``` 2. 后端配置: - 修改数据库配置 - 设置生产环境变量 - 配置文件上传路径 3. 服务器部署: - 使用Nginx代理前端静态文件 - 使用Gunicorn运行Flask应用 - 配置SSL证书 ## 扩展功能 ### 可扩展特性 - 集成真实的AI模型(OpenAI GPT、Claude等) - 支持更多文件格式(Word、Excel、PPT等) - 添加用户认证和权限管理 - 实现文件版本控制 - 添加文件预览缩略图 - 支持OCR识别扫描版PDF - 实现全文索引优化搜索性能 ## 许可证 MIT License ## 贡献 欢迎提交Issue和Pull Request来改进这个项目。