# python-ml **Repository Path**: leacyy/python-ml ## Basic Information - **Project Name**: python-ml - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-02-04 - **Last Updated**: 2026-02-08 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Python ML 智能应用平台 一个基于Flask的智能机器学习应用平台,集成了多种AI功能,包括语音识别、人脸识别、数学题生成、PDF解析、语义相似度分析等。 ## 🚀 功能特性 ### 1. 语音识别 (Speech Recognition) - **多语言支持**: 支持中文、英文等多种语言 - **自动语言检测**: 智能识别音频语言 - **中文优化**: 自动将繁体中文转换为简体中文 - **多格式支持**: 支持WAV、MP3、OGG、M4A、FLAC等音频格式 - **异步处理**: 多线程处理,支持并发请求 ### 2. 人脸识别 (Face Recognition) - **人脸检测**: 实时检测图片中的人脸 - **身份识别**: 基于数据库的人脸匹配和身份验证 - **摄像头支持**: 支持实时摄像头捕获和识别 - **批量处理**: 支持多张图片批量识别 ### 3. 数学题生成 (Math Generation) - **智能生成**: 基于AI模型自动生成数学题目 - **题目类型**: 支持分数运算、进位借位等多种题型 - **批量生成**: 可一次性生成多道相似题目 - **答案验证**: 自动生成标准答案 ### 4. PDF解析 (PDF Processing) - **文本提取**: 智能提取PDF文档中的文本内容 - **结构化转换**: 将PDF内容转换为结构化JSON格式 - **格式修复**: 自动修复提取过程中的格式问题 - **多语言支持**: 支持中英文PDF文档 ### 5. 语义相似度分析 (Semantic Similarity) - **文本分析**: 分析文本之间的语义相似度 - **智能匹配**: 基于AI模型的语义理解 - **批量处理**: 支持多文本批量分析 ### 6. 机器学习推荐系统 - **食物推荐**: 基于年龄和性别的个性化推荐 - **线性回归**: 面积预测模型 - **逻辑回归**: 保险购买预测 ## 📋 系统要求 - Python 3.8+ - Flask 2.2.5+ - CUDA支持(可选,用于GPU加速) - 至少4GB内存 - 支持的操作系统: Windows, Linux, macOS ## 🛠️ 安装部署 ### 1. 克隆项目 ```bash git clone cd python-ml ``` ### 2. 创建虚拟环境 ```bash python -m venv venv # Windows venv\Scripts\activate # Linux/macOS source venv/bin/activate ``` ### 3. 安装依赖 ```bash pip install -r requirements.txt ``` ### 4. 环境配置 创建 `.env` 文件并配置以下参数: ```env FLASK_ENV=development FLASK_DEBUG=1 USE_CPU=false # 是否强制使用CPU OPENAI_API_KEY=your_api_key # OpenAI API密钥 ``` ### 5. 初始化数据库 ```bash python -c "from app.db_conn import init_db; from app.app import app; init_db(app)" ``` ### 6. 启动应用 ```bash python app/app.py ``` 应用将在 `http://localhost:5000` 启动 ## 🔌 API接口文档 ### 语音识别接口 #### POST /speech/transcribe 语音转文字接口 **请求参数:** - `audio`: 音频文件 (multipart/form-data) - `lang`: 语言代码 (可选,默认: zh) **支持格式:** WAV, MP3, OGG, M4A, FLAC **响应示例:** ```json { "text": "识别出的文字内容", "language": "zh", "duration": 3.45 } ``` **健康检查:** - `GET /speech/health` - 检查服务状态 ### 人脸识别接口 #### POST /face/upload 上传图片进行人脸识别 **请求参数:** - `file`: 图片文件 **响应示例:** ```json { "status": "known", "user_id": "user123" } ``` #### POST /face/capture 摄像头捕获人脸识别 **请求参数:** - `image`: Base64编码的图片数据 ### 数学题生成接口 #### POST /generateMath/gen 生成数学题目 **请求参数:** ```json { "base_questions": ["基础题目1", "基础题目2"], "total_count": 5 } ``` **响应示例:** ```json { "questions": [ { "question": "题目内容", "subQuestion": ["子问题1"], "answer": [{"type": "fraction", "value": {"numerator": 3, "denominator": 4}}] } ] } ``` ### PDF解析接口 #### POST /pdfForEn/process 解析PDF文档 **请求参数:** - `pdf_file`: PDF文件 - `output_format`: 输出格式 (默认: json) **响应示例:** ```json { "Course": "课程名称", "Topics": [ { "name": "主题", "Questions": [ { "question": "问题内容", "information": "相关信息", "answer_options": ["选项A", "选项B"] } ] } ] } ``` ### 机器学习推荐接口 #### POST /index 食物推荐 **请求参数:** - `age`: 年龄 - `gender`: 性别 #### POST /linear 线性回归预测 **请求参数:** - `area`: 面积 #### POST /logistic 逻辑回归预测 **请求参数:** - `age`: 年龄 ## 🎯 使用示例 ### 1. 语音识别示例 ```python import requests # 语音转文字 with open('audio.wav', 'rb') as f: files = {'audio': f} data = {'lang': 'zh'} response = requests.post('http://localhost:5000/speech/transcribe', files=files, data=data) print(response.json()) ``` ### 2. 人脸识别示例 ```python import requests # 上传图片识别 with open('face.jpg', 'rb') as f: files = {'file': f} response = requests.post('http://localhost:5000/face/upload', files=files) print(response.json()) ``` ### 3. 数学题生成示例 ```python import requests data = { "base_questions": ["小明有3个苹果,分给小红2个,还剩几个?"], "total_count": 3 } response = requests.post('http://localhost:5000/generateMath/gen', json=data) print(response.json()) ``` ## 🔧 配置说明 ### 主要配置文件 - `app/config.py` - 应用配置 - `app/db_conn.py` - 数据库连接配置 - `requirements.txt` - Python依赖包 ### 环境变量 - `FLASK_ENV` - Flask环境 (development/production) - `USE_CPU` - 是否强制使用CPU (true/false) - `OPENAI_API_KEY` - OpenAI API密钥 ## 📁 项目结构 ``` python-ml/ ├── app/ # 主应用目录 │ ├── app.py # 主应用文件 │ ├── config.py # 配置文件 │ ├── db_conn.py # 数据库连接 │ ├── routes/ # 路由模块 │ │ ├── speech.py # 语音识别 │ │ ├── face.py # 人脸识别 │ │ ├── generateMath.py # 数学题生成 │ │ ├── pdfForEn.py # PDF解析 │ │ └── ... # 其他模块 │ ├── templates/ # 前端模板 │ └── models.py # 数据模型 ├── train/ # 训练相关 ├── requirements.txt # 依赖包列表 └── README.md # 项目说明 ``` ## 🚨 注意事项 1. **API密钥安全**: 请妥善保管OpenAI API密钥,不要提交到代码仓库 2. **文件大小限制**: 上传文件大小限制为16MB 3. **并发处理**: 语音识别支持多线程并发,但建议控制并发数量 4. **GPU加速**: 如果使用GPU,确保安装了CUDA和cuDNN 5. **数据库**: 首次运行需要初始化数据库 ## 🐛 故障排除 ### 常见问题 1. **依赖安装失败** ```bash pip install --upgrade pip pip install -r requirements.txt --force-reinstall ``` 2. **CUDA相关错误** - 检查CUDA版本兼容性 - 设置环境变量 `USE_CPU=true` 3. **内存不足** - 减少并发线程数 - 使用较小的模型 4. **API调用失败** - 检查网络连接 - 验证API密钥有效性 ## 📞 技术支持 如果您在使用过程中遇到问题,请: 1. 查看日志文件获取详细错误信息 2. 检查配置文件是否正确 3. 确认所有依赖包已正确安装 4. 提交Issue到项目仓库 ## 📄 许可证 本项目采用 MIT 许可证,详见 LICENSE 文件。 ## 🤝 贡献指南 欢迎提交Pull Request和Issue来改进项目! 1. Fork 项目 2. 创建功能分支 3. 提交更改 4. 推送到分支 5. 创建Pull Request --- **最后更新**: 2024年12月 **版本**: 1.0.0