# PhotoAI **Repository Path**: ezemeti/PhotoAI ## Basic Information - **Project Name**: PhotoAI - **Description**: 这是一个基于PhotoAI的高性能证件照处理服务,专为微信小程序设计,提供智能证件照生成、颜值检测、社交媒体模板等多种功能。 - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-08-05 - **Last Updated**: 2025-08-14 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # PhotoAI证件照处理服务 这是一个基于PhotoAI的高性能证件照处理服务,专为微信小程序设计,提供智能证件照生成、颜值检测、社交媒体模板等多种功能。 ## 🚀 项目特色 - **微信小程序专用**:仅接受来自微信小程序的请求,确保服务安全 - **AI智能处理**:集成大语言模型进行颜值分析和智能优化 - **多尺寸支持**:支持标准证件照、高清照、透明背景照、排版照 - **实时处理**:异步处理,快速响应 - **自动管理**:文件自动存储和定时清理 ## 📁 项目结构 ``` PhotoAI/ ├── main.py # PhotoAI主应用 ├── routers/ # API路由模块 │ ├── id_photo_router.py # 证件照处理路由 │ ├── beauty_router.py # 颜值检测路由 │ └── user_router.py # 用户管理路由 ├── WeChat/PhotoAI/ # 微信小程序前端 │ ├── app.json # 小程序配置 │ ├── pages/ # 小程序页面 │ └── ... ├── utils/ # 工具模块 ├── config.py # 配置文件 ├── .env.dev # 环境变量模板 └── requirements.txt # 依赖列表 ``` ## 🛠️ 快速开始 ### 环境要求 - Python 3.8+ - PhotoAI - Uvicorn - OpenAI API Key ### 安装步骤 1. **克隆项目** ```bash git clone https://gitee.com/ezemeti/PhotoAI.git cd PhotoAI ``` 2. **创建虚拟环境** ```bash python -m venv .venv source .venv/bin/activate # Windows: .venv\Scripts\activate ``` 3. **安装依赖** ```bash pip install -r requirements.txt ``` 4. **配置环境变量** 复制`.env.dev`为`.env`并填写配置: ```bash OPENAI_API_KEY=your_openai_api_key OPENAI_MODEL=gpt-4o-mini # 微信小程序配置 APP_ID=your_wechat_app_id APP_SECRET=your_wechat_app_secret ``` 5. **启动服务** ```bash uvicorn main:app --host 0.0.0.0 --port 8000 --reload ``` ### 微信小程序配置 在`WeChat/PhotoAI/app.js`中配置API地址: ```javascript App({ globalData: { api_url: 'http://your-server-ip:8000/' } }) ``` ## 📋 API接口文档 ### 证件照处理 #### 生成证件照 ```http POST /api/idphoto/generate Content-Type: multipart/form-data 参数: - file: 图片文件 - size: 证件照尺寸(1寸、2寸等) - background_color: 背景颜色 - hd: 是否生成高清版本(可选) - transparent: 是否生成透明背景(可选) ``` #### 获取证件照列表 ```http GET /api/idphoto/list/{openid} ``` ### 颜值检测 #### 分析颜值 ```http POST /api/beauty/analyze Content-Type: multipart/form-data 参数: - file: 图片文件 ``` #### 获取分析结果 ```http GET /api/beauty/result/{result_id} ``` ### 用户管理 #### 获取用户信息 ```http GET /api/user/info/{openid} ``` ## 🔒 安全特性 ### 微信小程序专用验证 服务已配置为仅接受微信小程序请求: - **User-Agent验证**:检查`miniProgram`或`MicroMessenger`关键字 - **CORS配置**:支持微信小程序跨域请求 - **例外路径**:健康检查、API文档等接口不受限制 ### 验证逻辑 ```python # 在main.py中的中间件实现 @app.middleware("http") async def wechat_mini_program_middleware(request: Request, call_next): # 验证User-Agent user_agent = request.headers.get("User-Agent", "") if "miniProgram" not in user_agent and "MicroMessenger" not in user_agent: return JSONResponse( status_code=403, content={"message": "拒绝访问:只允许微信小程序请求"} ) ``` ## 🎯 微信小程序页面 ### 页面结构 根据`app.json`配置: ```json { "pages": [ "pages/login/login", "pages/edit/edit", "pages/profile/profile", "pages/gallery/gallery", "pages/beauty/beauty" ], "tabBar": { "list": [ { "pagePath": "pages/edit/edit", "text": "修图" }, { "pagePath": "pages/beauty/beauty", "text": "颜值检测" }, { "pagePath": "pages/profile/profile", "text": "个人" } ] } } ``` ### 功能说明 - **修图页面**:证件照生成和编辑 - **颜值检测**:AI颜值分析和评分 - **个人中心**:用户信息和历史记录 ## 📊 支持的证件照规格 | 尺寸 | 像素 | 用途 | |------|------|------| | 1寸 | 295×413 | 普通证件 | | 2寸 | 413×579 | 标准证件 | | 小2寸 | 413×531 | 护照签证 | | 大1寸 | 390×567 | 港澳通行证 | ## 🎨 背景颜色支持 - 白色 (#FFFFFF) - 蓝色 (#438EDB) - 红色 (#FF0000) - 透明 (PNG格式) ## 🔧 开发配置 ### 开发环境 ```bash # 启动开发服务器 uvicorn main:app --host 0.0.0.0 --port 8000 --reload --log-level debug # 查看API文档 访问 http://localhost:8000/docs ``` ### 生产环境 ```bash # 使用gunicorn启动 gunicorn main:app -w 4 -k uvicorn.workers.UvicornWorker --bind 0.0.0.0:8000 ``` ## 📱 微信小程序开发 ### 开发环境配置 1. **安装微信开发者工具** 2. **导入项目**:选择`WeChat/PhotoAI`目录 3. **配置请求域名**:在微信公众平台配置服务器域名 4. **调试模式**:开启不校验HTTPS证书(开发环境) ### 小程序页面开发 - 使用TDesign组件库 - 支持深色模式 - 响应式布局设计 ## 🗂️ 文件管理 ### 存储结构 ``` storage/ ├── {openid}/ │ ├── original/ # 原图 │ ├── standard/ # 标准证件照 │ ├── hd/ # 高清证件照 │ ├── transparent/ # 透明背景 │ └── layout/ # 排版照 ``` ### 自动清理 - 临时文件:24小时后自动清理 - 用户文件:长期保存 - 日志文件:按大小轮转 ## 🚨 常见问题 ### Q: 非微信小程序请求被拒绝 A: 确保请求来自微信小程序,检查User-Agent是否包含`miniProgram` ### Q: 图片上传失败 A: 检查文件大小限制(最大10MB)和格式支持(JPG、PNG) ### Q: 颜值分析失败 A: 确保OpenAI API Key有效,检查网络连接 ### Q: 微信小程序无法连接 A: 确认服务器域名已配置在微信公众平台,HTTPS证书有效 ## 📞 技术支持 - **文档地址**:http://your-server-ip:8000/docs - **问题反馈**:提交Issue到项目仓库 - **更新日志**:查看CHANGELOG.md ## 📝 许可证 MIT License - 详见LICENSE文件 ## 🤝 贡献指南 1. Fork项目 2. 创建功能分支 3. 提交更改 4. 发起Pull Request --- **开发团队**:PhotoAI证件照处理服务 **最后更新**:2024年12月