重构简历优化

This commit is contained in:
zk
2026-06-23 18:21:30 +08:00
parent 1edc28e332
commit 2f38c80207
11 changed files with 99 additions and 113 deletions
-15
View File
@@ -153,21 +153,6 @@ class ResumeDiagnoseService:
issue.user_feedback = user_feedback
await self.session.flush()
async def get_issue_for_polish(self, issue_id: int, user_id: int) -> dict:
"""获取 issue 润色所需的上下文信息"""
result = await self.session.execute(
select(ResumeDiagnosisIssue).where(
ResumeDiagnosisIssue.id == issue_id, ResumeDiagnosisIssue.user_id == user_id))
issue = result.scalar_one_or_none()
if issue is None:
raise ValueError("诊断问题不存在")
return {
"module_type": issue.module_type,
"module_label": _MODULE_LABELS.get(issue.module_type, issue.module_type),
"optimized_content": issue.optimized_content,
"is_summary": issue.module_type == "summary",
}
# ===== 工具函数 =====
@@ -1,4 +1,4 @@
"""简历解析 Service
"""简历 Service
上传简历文件 解析为纯文本 AI 两阶段并行结构化 写入数据库
依赖file_parser文件解析工具resume_extractorAI两阶段并行提取
@@ -11,6 +11,7 @@ import shortuuid
from sqlalchemy.ext.asyncio import AsyncSession
from app.ai.resume_extractor.extractor import extract_all
from app.ai.resume_polisher.polisher import polish_paragraphs
from app.core.logger import log
from app.models.user_resume import UserResume
from app.models.user_resume_competition import UserResumeCompetition
@@ -22,7 +23,7 @@ from app.tool.file_parser import parse_to_text
from app.tool.snowflake import next_id
class ResumeParseService:
class ResumeService:
async def parse_and_extract(self, filename: str, content: bytes) -> dict:
"""文件解析 + AI 两阶段并行结构化,不涉及数据库操作"""
@@ -37,6 +38,13 @@ class ResumeParseService:
log.info("AI两阶段并行结构化提取完成")
return parsed
async def polish_paragraphs(self, content: list[str]) -> list[str]:
"""对简历段落做表达层面的润色(格式/错字/表达),不涉及数据库操作"""
log.info(f"开始简历段落润色, 段落数={len(content)}")
result = await polish_paragraphs(content)
log.info("简历段落润色完成")
return result
async def save_resume(self, session: AsyncSession, user_id: int, filename: str, parsed: dict) -> int:
"""将解析结果写入主表 + 5张子表,返回简历ID"""
resume_id = next_id()