重构简历优化
This commit is contained in:
@@ -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_extractor(AI两阶段并行提取)
|
||||
@@ -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()
|
||||
Reference in New Issue
Block a user