添加简历诊断功能
This commit is contained in:
+17
-10
@@ -32,13 +32,17 @@ offerpie_python_ai/
|
||||
│
|
||||
├─ ai/ # **AI 能力层**
|
||||
│ ├─ models.py # LLM 模型枚举(LLM.DOUBAO_PRO_256K、DEEPSEEK_V3、GPT_4O 等),基于 LangChain ChatOpenAI
|
||||
│ └─ resume_extractor/ # 简历 AI 提取模块
|
||||
│ ├─ prompts.py # 5 个提取任务的 System Prompt(个人信息/教育/工作+实习/项目/竞赛)
|
||||
│ └─ extractor.py # AI 并行提取(extract_all 入口,asyncio.gather 5 路并行)
|
||||
│ ├─ resume_extractor/ # 简历 AI 提取模块
|
||||
│ │ ├─ prompts.py # 5 个提取任务的 System Prompt(个人信息/教育/工作+实习/项目/竞赛)
|
||||
│ │ └─ extractor.py # AI 并行提取(extract_all 入口,asyncio.gather 5 路并行)
|
||||
│ └─ resume_diagnoser/ # 简历 AI 诊断模块
|
||||
│ ├─ prompts.py # 诊断 Prompt 模板(分模块诊断 + 汇总评价)
|
||||
│ └─ diagnoser.py # AI 并行诊断(diagnose_all 入口 + generate_summary 汇总评价)
|
||||
│
|
||||
├─ api/ # **路由层**(REST API 接口)
|
||||
│ ├─ health.py # 健康检查接口 GET /health/
|
||||
│ └─ resume.py # 简历接口 POST /resume/upload(上传文件AI解析)
|
||||
│ ├─ resume.py # 简历接口 POST /resume/upload(上传文件AI解析)
|
||||
│ └─ resume_diagnose.py # 简历诊断接口(POST 触发诊断 / GET 查询报告 / PUT 标记处理)
|
||||
│
|
||||
├─ models/ # **ORM 模型层**(SQLAlchemy 声明式映射)
|
||||
│ ├─ func_permission.py # 功能权限定义表(bg_func_permission)
|
||||
@@ -49,7 +53,9 @@ offerpie_python_ai/
|
||||
│ ├─ 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)
|
||||
│ ├─ user_resume_competition.py # 简历-竞赛经历表(bg_user_resume_competition)
|
||||
│ ├─ resume_diagnosis_report.py # 简历诊断报告表(bg_resume_diagnosis_report)
|
||||
│ └─ resume_diagnosis_issue.py # 简历诊断问题表(bg_resume_diagnosis_issue)
|
||||
│
|
||||
├─ tool/ # **工具层**(无状态、无业务依赖的通用工具)
|
||||
│ ├─ file_parser.py # 文件解析工具(PDF/Word/TXT → 纯文本,parse_to_text 入口方法)
|
||||
@@ -57,7 +63,8 @@ offerpie_python_ai/
|
||||
│
|
||||
└─ services/ # **业务逻辑层**
|
||||
├─ func_permission_service.py # 功能权限服务(校验+扣减+回退,逻辑与Java端一致)
|
||||
└─ resume_parse_service.py # 简历解析服务(文件解析→AI结构化→写入主表+5张子表)
|
||||
├─ resume_parse_service.py # 简历解析服务(文件解析→AI结构化→写入主表+5张子表)
|
||||
└─ resume_diagnose_service.py # 简历诊断服务(加载简历→AI并行诊断→统计评级→写入报告)
|
||||
```
|
||||
|
||||
## 2️⃣ 各层模块职责
|
||||
@@ -65,11 +72,11 @@ 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 模型管理 + 业务 AI 能力 | `LLM` 枚举、`resume_extractor/`(简历并行提取:5路 AI 同时提取个人信息/教育/工作+实习/项目/竞赛) |
|
||||
| **api** | REST API 路由定义 | `health.py`(健康检查)、`resume.py`(简历上传解析) |
|
||||
| **models** | SQLAlchemy ORM 模型,与 Java 端共享同一数据库 | `FuncPermission`、`UserFuncPermissionStock`、`UserFuncUsageLog`、`UserResume`、`UserResumeEducation`/`Work`/`Internship`/`Project`/`Competition` |
|
||||
| **ai** | AI 模型管理 + 业务 AI 能力 | `LLM` 枚举、`resume_extractor/`(简历并行提取:5路 AI 同时提取个人信息/教育/工作+实习/项目/竞赛)、`resume_diagnoser/`(简历诊断:并行诊断各模块描述 + 汇总评价) |
|
||||
| **api** | REST API 路由定义 | `health.py`(健康检查)、`resume.py`(简历上传解析)、`resume_diagnose.py`(简历诊断) |
|
||||
| **models** | SQLAlchemy ORM 模型,与 Java 端共享同一数据库 | `FuncPermission`、`UserFuncPermissionStock`、`UserFuncUsageLog`、`UserResume`、`UserResumeEducation`/`Work`/`Internship`/`Project`/`Competition`、`ResumeDiagnosisReport`、`ResumeDiagnosisIssue` |
|
||||
| **tool** | 无状态通用工具,不依赖数据库/Redis/用户上下文 | `file_parser.py`(PDF/Word/TXT 文件解析为纯文本)、`snowflake.py`(雪花ID生成) |
|
||||
| **services** | 业务逻辑实现 | `FuncPermissionService`(功能权限校验、扣减、回退)、`ResumeParseService`(简历文件解析→AI结构化→入库) |
|
||||
| **services** | 业务逻辑实现 | `FuncPermissionService`(功能权限校验、扣减、回退)、`ResumeParseService`(简历文件解析→AI结构化→入库)、`ResumeDiagnoseService`(简历诊断→AI并行分析→评级→入库) |
|
||||
|
||||
## 3️⃣ 技术栈
|
||||
| 类别 | 技术选型 | 说明 |
|
||||
|
||||
Reference in New Issue
Block a user