# ocr-service **Repository Path**: Tab-Tan/ocr-service ## Basic Information - **Project Name**: ocr-service - **Description**: 质谱-ocr - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-02-25 - **Last Updated**: 2026-02-25 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # GLM-OCR 服务 基于智谱AI GLM-OCR 模型的智能文档识别服务。 ## 功能特性 - ✅ **高精度OCR识别**:基于GLM-OCR模型,支持复杂文档识别 - ✅ **多格式支持**:支持 PNG, JPG, JPEG, PDF 格式 - ✅ **账号密码登录**:MySQL数据库存储用户信息,密码加密 - ✅ **精美前端界面**:现代化UI设计,支持拖拽上传 - ✅ **结构化输出**:Markdown + JSON 格式返回识别结果 - ✅ **历史记录**:保存识别历史,支持查询 - ✅ **使用日志**:记录时间、IP、文件名、返回数据等 ## 部署信息 - **访问地址**: http://localhost:5000 - **默认账户**: - 用户名: `admin` - 密码: `admin123` - **服务端口**: 5000 (内部) - **数据库端口**: 3306 (内部) ## 技术栈 - **后端**: Flask (Python 3.11) - **数据库**: MySQL 8.0 (内存限制256MB) - **前端**: 原生HTML/CSS/JS - **部署**: Docker Compose ## 资源限制 | 服务 | 内存限制 | 当前使用 | |------|---------|---------| | MySQL | 256MB | ~250MB | | Backend | 512MB | ~30MB | ## 目录结构 ``` ocr-service/ ├── backend/ │ ├── app.py # Flask应用主文件 │ ├── templates/ # HTML模板 │ │ ├── login.html # 登录页面 │ │ └── dashboard.html # 主页面 │ ├── requirements.txt # Python依赖 │ └── Dockerfile # 后端Docker镜像 ├── config/ │ └── mysql.cnf # MySQL配置(低内存优化) ├── .env.example # 环境变量示例 ├── .env # 环境变量(不提交到git) ├── docker-compose.yml # Docker编排配置 ├── DEPLOYMENT.md # 部署说明文档 └── README.md # 本文件 ``` ## 环境变量配置 编辑 `.env` 文件配置以下变量: ```bash # GLM-OCR API 配置 GLM_OCR_API_URL=https://open.bigmodel.cn/api/paas/v4/layout_parsing GLM_OCR_API_KEY=your_api_key_here # 从 https://open.bigmodel.cn 获取 # 应用配置 SECRET_KEY=your-secret-key-here BACKEND_PORT=5000 # 数据库密码 DB_PASSWORD=ocr_secure_password # 默认用户 DEFAULT_USERNAME=admin DEFAULT_PASSWORD=admin123 ``` ## 使用说明 ### 1. 首次登录 访问 http://localhost:5000,使用默认账户登录: - 用户名: `admin` - 密码: `admin123` ### 2. 上传文件 点击上传区域或拖拽文件,支持: - 图片格式: PNG, JPG, JPEG (最大10MB) - PDF文档 (最大50MB,最多100页) ### 3. 查看结果 识别完成后,可以: - 查看Markdown格式的识别结果 - 一键复制结果到剪贴板 - 查看历史记录 - 查看使用日志 ### 4. 使用日志 在"使用日志"标签页可以: - 查看所有识别记录 - 筛选成功/失败的记录 - 查看时间、IP、文件名、文件大小等详细信息 ## API接口 ### POST /api/ocr 识别上传的文件 **请求参数**: - `file`: 文件 (multipart/form-data) **响应示例**: ```json { "success": true, "result": "# 识别结果的Markdown格式", "filename": "example.png", "usage": { "prompt_tokens": 1000, "completion_tokens": 500 }, "processing_time": 4.62 } ``` ### GET /api/history 获取历史记录 **查询参数**: - `page`: 页码 (默认1) - `per_page`: 每页数量 (默认10) ### GET /api/usage-logs 获取使用日志 **查询参数**: - `page`: 页码 (默认1) - `per_page`: 每页数量 (默认20) - `status`: 状态筛选 (success/error) ### POST /login 用户登录 **请求参数**: - `username`: 用户名 - `password`: 密码 ## 配置真实的GLM-OCR API 默认情况下,服务使用模拟数据。要使用真实的GLM-OCR服务: 1. 访问 https://open.bigmodel.cn 注册并获取API密钥 2. 编辑 `.env` 文件,设置 `GLM_OCR_API_KEY` 3. 重启服务: ```bash docker-compose restart backend ``` ## 管理命令 ### 查看服务状态 ```bash docker-compose ps ``` ### 查看日志 ```bash # 后端日志 docker logs glm-ocr-backend -f # MySQL日志 docker logs glm-ocr-mysql -f ``` ### 重启服务 ```bash docker-compose restart ``` ### 停止服务 ```bash docker-compose down ``` ### 查看资源使用 ```bash docker stats glm-ocr-backend glm-ocr-mysql ``` ## 数据库管理 ### 连接数据库 ```bash docker exec -it glm-ocr-mysql mysql -u ocr_user -p ocr_db ``` ### 备份数据库 ```bash docker exec glm-ocr-mysql mysqldump -u root -p ocr_db > backup.sql ``` ### 恢复数据库 ```bash docker exec -i glm-ocr-mysql mysql -u root -p ocr_db < backup.sql ``` ## 故障排除 ### 服务无法启动 ```bash # 检查日志 docker logs glm-ocr-backend docker logs glm-ocr-mysql # 检查端口占用 ss -tlnp | grep -E '(5000|3306)' ``` ### 数据库连接失败 1. 确认MySQL容器正在运行 2. 检查环境变量配置 3. 查看后端日志中的错误信息 ## 安全建议 1. **修改默认密码**: 首次登录后立即修改默认密码 2. **API密钥保护**: 不要将GLM_OCR_API_KEY提交到版本控制 3. **定期备份**: 定期备份数据库数据 4. **限制访问**: 配置防火墙规则,限制访问 ## 性能优化 ### MySQL已优化配置 - InnoDB缓冲池: 32MB - 最大连接数: 50 - 表缓存: 64个 ## 更新日志 ### 2026-02-25 - ✅ 完成服务部署 - ✅ 用户认证功能 - ✅ 使用日志记录(时间、IP、文件名、返回数据) - ✅ 精美前端界面 - ✅ 内存优化: MySQL限制256MB ## 联系方式 - 文档: https://github.com/zai-org/GLM-OCR - API文档: https://docs.bigmodel.cn/cn/guide/models/vlm/glm-ocr