添加Ai 简历解析

This commit is contained in:
zk
2026-04-02 16:01:08 +08:00
parent 4de721ffca
commit ff0993e431
14 changed files with 441 additions and 10 deletions
+17 -8
View File
@@ -34,18 +34,27 @@ offerpie_python_ai/
│ └─ models.py # LLM 模型枚举(LLM.DOUBAO_PRO_256K、DEEPSEEK_V3、GPT_4O 等),基于 LangChain ChatOpenAI
├─ api/ # **路由层**REST API 接口)
─ health.py # 健康检查接口 GET /health/
─ health.py # 健康检查接口 GET /health/
│ └─ resume.py # 简历接口 POST /resume/upload(上传文件AI解析)
├─ models/ # **ORM 模型层**SQLAlchemy 声明式映射)
│ ├─ func_permission.py # 功能权限定义表(bg_func_permission
│ ├─ user_func_permission_stock.py # 用户功能权限库存表(bg_user_func_permission_stock
─ user_func_usage_log.py # 用户功能使用记录表(bg_user_func_usage_log
─ user_func_usage_log.py # 用户功能使用记录表(bg_user_func_usage_log
│ ├─ user_resume.py # 用户简历主表(bg_user_resume
│ ├─ user_resume_education.py # 简历-教育经历表(bg_user_resume_education
│ ├─ user_resume_work.py # 简历-工作经历表(bg_user_resume_work
│ ├─ user_resume_internship.py # 简历-实习经历表(bg_user_resume_internship
│ ├─ user_resume_project.py # 简历-项目经历表(bg_user_resume_project
│ └─ user_resume_competition.py # 简历-竞赛经历表(bg_user_resume_competition
├─ tool/ # **工具层**(无状态、无业务依赖的通用工具)
─ file_parser.py # 文件解析工具(PDF/Word/TXT → 纯文本,parse_to_text 入口方法)
─ file_parser.py # 文件解析工具(PDF/Word/TXT → 纯文本,parse_to_text 入口方法)
│ └─ snowflake.py # 雪花 ID 生成工具(next_id
└─ services/ # **业务逻辑层**
─ func_permission_service.py # 功能权限服务(校验+扣减+回退,逻辑与Java端一致)
─ func_permission_service.py # 功能权限服务(校验+扣减+回退,逻辑与Java端一致)
└─ resume_parse_service.py # 简历解析服务(文件解析→AI结构化→写入主表+5张子表)
```
## 2️⃣ 各层模块职责
@@ -54,10 +63,10 @@ offerpie_python_ai/
| **config** | 统一配置管理,基于 Pydantic Settings,支持 .env 文件加载 | `Settings`(数据库、Redis、LLM供应商、JWT、CORS、日志等全部配置项) |
| **core** | 核心基础设施:数据库连接、Redis连接、鉴权、日志、中间件、异常处理、统一响应 | `database.py``redis.py``auth.py``middleware.py``exceptions.py``logger.py``StandardResponse` |
| **ai** | AI 模型管理,封装多供应商 LLM 实例创建,基于 LangChain ChatOpenAI | `LLM` 枚举(火山引擎:doubao/deepseek,心缘:gpt-4o/claude |
| **api** | REST API 路由定义 | `health.py`(健康检查) |
| **models** | SQLAlchemy ORM 模型,与 Java 端共享同一数据库 | `FuncPermission``UserFuncPermissionStock``UserFuncUsageLog` |
| **tool** | 无状态通用工具,不依赖数据库/Redis/用户上下文 | `file_parser.py`PDF/Word/TXT 文件解析为纯文本) |
| **services** | 业务逻辑实现 | `FuncPermissionService`(功能权限校验、扣减、回退) |
| **api** | REST API 路由定义 | `health.py`(健康检查)`resume.py`(简历上传解析) |
| **models** | SQLAlchemy ORM 模型,与 Java 端共享同一数据库 | `FuncPermission``UserFuncPermissionStock``UserFuncUsageLog``UserResume``UserResumeEducation`/`Work`/`Internship`/`Project`/`Competition` |
| **tool** | 无状态通用工具,不依赖数据库/Redis/用户上下文 | `file_parser.py`PDF/Word/TXT 文件解析为纯文本)`snowflake.py`(雪花ID生成) |
| **services** | 业务逻辑实现 | `FuncPermissionService`(功能权限校验、扣减、回退)`ResumeParseService`(简历文件解析→AI结构化→入库) |
## 3️⃣ 技术栈
| 类别 | 技术选型 | 说明 |