chenchaoyun commited on
Commit
900d6f9
·
1 Parent(s): 21e6fc0
Files changed (2) hide show
  1. GEMINI.md +47 -0
  2. prompt.md +0 -35
GEMINI.md ADDED
@@ -0,0 +1,47 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # PicPocket 后端项目核心指南 (GEMINI.md)
2
+
3
+ ## 1. 项目定位
4
+ 本项目是一个为微信小程序提供支撑的高性能图像处理后台,核心业务围绕“人脸评分”、“老照片修复”、“AI 抠图”和“智能图库”展开。
5
+
6
+ ## 2. 核心技术栈
7
+ - **Web 框架**: FastAPI (Python 3.10+)
8
+ - **异步处理**: `asyncio` + `ThreadPoolExecutor` (用于隔离 CV 推理等 CPU 密集型任务)
9
+ - **图像处理**: OpenCV, NumPy, PIL
10
+ - **AI 推理引擎**:
11
+ - **人脸分析**: DeepFace (ArcFace), 自研 EnhancedFaceAnalyzer (YOLO + 颜值模型)
12
+ - **画质增强**: GFPGAN (修复), Real-ESRGAN (超清)
13
+ - **自动上色**: DDColor
14
+ - **智能抠图**: Rembg (通用), RVM (人像视频/图片)
15
+ - **风格化**: AnimeStylizer
16
+ - **向量检索**: CLIP (cn_clip) + Vector Store
17
+ - **数据持久化**: MySQL (aiomysql 异步驱动)
18
+ - **云端集成**: 百度云 BOS (对象存储), 微信内容安全接口
19
+
20
+ ## 3. API 路由规范 (`api_routes.py`)
21
+ 所有的 API 统一挂载在 `/facescore` 前缀下:
22
+
23
+ | 接口路径 | 功能描述 | 核心逻辑/模型 |
24
+ | :--- | :--- | :--- |
25
+ | `/analyze` | 核心人脸分析接口 | YOLO 检测 + 颜值评分 + 年龄性别 (Hybrid 模式) |
26
+ | `/app/analyze` | App 专用分析接口 | 在 `/analyze` 基础上增加设备信息记录 |
27
+ | `/upload_file` | 文件上传 | 支持 `idphoto` 类型自动修复 |
28
+ | `/check_image_security` | 安全检测 | 微信内容安全检测 |
29
+ | `/detect_faces` | 纯人脸检测 | 快速返回 YOLO 检测框 |
30
+ | `/image_search` | 以图搜图 | CLIP 向量相似度搜索 |
31
+ | `/outputs` | 历史记录/搜索 | 支持分页、分类过滤及向量关键词检索 |
32
+ | `/daily_category_stats` | 业务统计 | 统计当日各项功能的使用频率 |
33
+
34
+ ## 4. 关键开发守则 (必须遵守)
35
+ - **禁止阻塞主线程**: 严禁在 `async def` 中直接进行耗时计算(如 `cv2.imread`, `model.predict`)。必须使用 `process_cpu_intensive_task`。
36
+ - **内存与会话清理**: DeepFace 报错时应调用 `_recover_deepface_model`;频繁推理需注意显存释放。
37
+ - **数据记录一致性**: 任何生成新文件的接口都必须通过 `_record_output_file` 异步记入数据库。
38
+ - **安全性**: 优先执行 `check_image_security`;处理上传文件需确保 UUID 命名以防冲突。
39
+ - **类型提示**: 所有新函数必须包含完整的 Typing 类型注解。
40
+
41
+ ## 5. 目录结构
42
+ - `api_routes.py`: 所有 API 的定义与入口。
43
+ - `face_analyzer.py`: 人脸检测与评分的核心逻辑实现。
44
+ - `database.py`: 数据库异步操作封装。
45
+ - `config.py`: 项目全局配置与模型开关。
46
+ - `utils.py`: 图像保存、BOS 上传、单位转换等工具函数。
47
+ - `*_processor.py`: 各 AI 功能模块的独立处理器。
prompt.md DELETED
@@ -1,35 +0,0 @@
1
- # PicPocket 后端开发核心指引 (AI Prompt)
2
-
3
- ## 1. 项目定位
4
- 本项目是一个为微信小程序提供支撑的高性能图像处理后台,核心业务围绕“人脸评分”、“老照片修复”、“AI 抠图”和“智能图库”展开。
5
-
6
- ## 2. 技术栈架构
7
- - **框架**: FastAPI (Python 3.10+)
8
- - **异步处理**: `asyncio` + `ThreadPoolExecutor` (用于处理 CV 密集型任务)
9
- - **图像处理库**: OpenCV, PIL, NumPy
10
- - **AI 模型库**:
11
- - 人脸: DeepFace, InsightFace (analyzer)
12
- - 修复: GFPGAN, Real-ESRGAN
13
- - 上色: DDColor (ModelScope)
14
- - 检索: CLIP (cn_clip), Faiss (Vector Store)
15
- - 抠图: Rembg, RVM
16
- - **数据库**: MySQL (使用 aiomysql 异步驱动)
17
- - **存储**: 本地目录 + 百度云 BOS
18
-
19
- ## 3. 编码规范 (必须严格遵守)
20
- - **异步原则**: 所有的数据库 IO、网络请求必须使用 `await`。CPU 密集型计算(如模型推理、图片加解密、复杂 OpenCV 操作)**必须**包裹在 `process_cpu_intensive_task` 或 `run_in_executor` 中执行,严禁阻塞主事件循环。
21
- - **日志规范**: 使用项目统一的 `logger`。关键步骤需记录 `_log_stage_duration` 以便监控耗时。
22
- - **内存安全**: 处理大图时注意清理显存/内存。对 DeepFace 等 Keras 模型,必要时调用 `_recover_deepface_model`。
23
- - **类型注解**: 函数定义必须包含完整的类型提示(Typing)。
24
- - **异常处理**: 业务接口需使用 `try...except` 捕获异常,并返回标准化的 `HTTPException` 或 JSON 错误响应。
25
-
26
- ## 4. 核心业务逻辑点
27
- - **图片记录**: 每次生成/上传图片后,必须调用 `_record_output_file` 异步持久化到 MySQL。
28
- - **路径规则**: 原图/人脸裁剪存放在 `IMAGES_DIR`,处理后的标注图/结果图存放在 `OUTPUT_DIR`。
29
- - **安全性**: 涉及用户上传内容,优先调用 `wx_access_token.check_image_security`。
30
- - **数据结构**: 模型推理返回的 NumPy 对象在返回前端前必须经过 `convert_numpy_types` 处理,防止 JSON 序列化失败。
31
-
32
- ## 5. AI 协作禁用项
33
- - **禁止胡编乱造**: 不确定的库用法必须要求查阅文档或询问用户。
34
- - **禁止破坏异步性**: 绝不允许在 FastAPI 的 `async def` 中直接运行耗时的同步计算。
35
- - **禁止忽略安全性**: 修改代码时不得移除现有的鉴权 (Basic Auth) 或安全检测逻辑。