picpocket / GEMINI.md
chawin.chen
fix start
e8d7d94

PicPocket 后端项目核心指南 (GEMINI.md)

1. 项目定位

本项目是一个为微信小程序提供支撑的高性能图像处理后台,核心业务围绕“人脸评分”、“老照片修复”、“AI 抠图”和“智能图库”展开。

2. 核心技术栈

  • Web 框架: FastAPI (Python 3.10+)
  • 异步处理: asyncio + ThreadPoolExecutor (用于隔离 CV 推理等 CPU 密集型任务)
  • 图像处理: OpenCV, NumPy, PIL
  • AI 推理引擎:
    • 人脸分析: DeepFace (ArcFace), 自研 EnhancedFaceAnalyzer (YOLO + 颜值模型)
    • 画质增强: GFPGAN (修复), Real-ESRGAN (超清)
    • 自动上色: DDColor
    • 智能抠图: Rembg (通用), RVM (人像视频/图片)
    • 风格化: AnimeStylizer
    • 向量检索: CLIP (cn_clip) + Vector Store
  • 数据持久化: MySQL (aiomysql 异步驱动)
  • 云端集成: 百度云 BOS (对象存储), 微信内容安全接口

3. API 路由规范 (api_routes.py)

所有的 API 统一挂载在 /facescore 前缀下:

接口路径 功能描述 核心逻辑/模型
/analyze 核心人脸分析接口 YOLO 检测 + 颜值评分 + 年龄性别 (Hybrid 模式)
/app/analyze App 专用分析接口 /analyze 基础上增加设备信息记录
/upload_file 文件上传 支持 idphoto 类型自动修复
/check_image_security 安全检测 微信内容安全检测
/detect_faces 纯人脸检测 快速返回 YOLO 检测框
/image_search 以图搜图 CLIP 向量相似度搜索
/outputs 历史记录/搜索 支持分页、分类过滤及向量关键词检索
/daily_category_stats 业务统计 统计当日各项功能的使用频率

4. 关键开发守则 (必须遵守)

  • 禁止阻塞主线程: 严禁在 async def 中直接进行耗时计算(如 cv2.imread, model.predict)。必须使用 process_cpu_intensive_task
  • 内存与会话清理: DeepFace 报错时应调用 _recover_deepface_model;频繁推理需注意显存释放。
  • 数据记录一致性: 任何生成新文件的接口都必须通过 _record_output_file 异步记入数据库。
  • 安全性: 优先执行 check_image_security;处理上传文件需确保 UUID 命名以防冲突。
  • 类型提示: 所有新函数必须包含完整的 Typing 类型注解。

5. 目录结构

  • api_routes.py: 所有 API 的定义与入口。
  • face_analyzer.py: 人脸检测与评分的核心逻辑实现。
  • database.py: 数据库异步操作封装。
  • config.py: 项目全局配置与模型开关。
  • utils.py: 图像保存、BOS 上传、单位转换等工具函数。
  • *_processor.py: 各 AI 功能模块的独立处理器。

6. 语言约束 (必须遵守)

  • 所有回答必须使用中文: 无论任何问题或对话内容,必须使用中文回答,禁止使用英文回复用户。