更新技能
This commit is contained in:
@@ -28,17 +28,25 @@ _skill_gap_chain = (
|
||||
)
|
||||
|
||||
|
||||
async def analyze_skill_gap(skill_tags: list[str], resume_json: str) -> list[str]:
|
||||
"""分析技能差距,返回缺失技能列表"""
|
||||
async def analyze_skill_gap(skill_tags: list[str], resume_json: str) -> list[dict]:
|
||||
"""分析技能差距,返回差距条目列表 [{keyword, title, description}],keyword 为缺失技能"""
|
||||
try:
|
||||
raw = await _skill_gap_chain.ainvoke({"skill_tags": str(skill_tags), "resume_json": resume_json})
|
||||
result = parse_llm_json(raw)
|
||||
if isinstance(result, list):
|
||||
return [s for s in result if isinstance(s, str) and s in skill_tags]
|
||||
return skill_tags # 解析异常降级:全部标记缺失
|
||||
return result
|
||||
return _fallback_gaps(skill_tags) # 解析异常降级:全部标记缺失
|
||||
except Exception as e:
|
||||
log.warning(f"AI技能差距分析失败: {e}")
|
||||
return skill_tags # 降级:全部标记缺失
|
||||
return _fallback_gaps(skill_tags) # 降级:全部标记缺失
|
||||
|
||||
|
||||
def _fallback_gaps(skill_tags: list[str]) -> list[dict]:
|
||||
"""降级:把全部岗位技能标记为缺失"""
|
||||
return [
|
||||
{"keyword": kw, "title": f"缺少{kw}", "description": "岗位要求该技能,简历暂未体现。"}
|
||||
for kw in skill_tags
|
||||
]
|
||||
|
||||
|
||||
# ===== 定制简历 - summary 优化 =====
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
注意:prompt 中的 JSON 示例花括号必须用 {{ }} 转义,避免被 ChatPromptTemplate 当作变量。
|
||||
"""
|
||||
|
||||
SKILL_GAP_PROMPT = """你是一个技能匹配助手。给定岗位要求的技能标签列表和用户简历信息,判断用户简历中未覆盖的技能。
|
||||
SKILL_GAP_PROMPT = """你是一个技能匹配助手。给定岗位要求的技能标签列表和用户简历信息,找出用户简历中未覆盖的技能并生成差距说明。
|
||||
|
||||
【岗位技能标签】
|
||||
{skill_tags}
|
||||
@@ -13,10 +13,15 @@ SKILL_GAP_PROMPT = """你是一个技能匹配助手。给定岗位要求的技
|
||||
|
||||
规则:
|
||||
1. 逐个判断岗位技能标签,用户简历中是否体现了该技能(包括直接提及、经历中隐含的技能)
|
||||
2. 只输出用户简历未覆盖的技能,必须是岗位技能标签的子集,原文输出不要修改
|
||||
3. 返回 JSON 数组格式,如:["Python", "SQL"]
|
||||
4. 如果全部覆盖,返回空数组 []
|
||||
5. 只返回 JSON 数组,不要其他内容"""
|
||||
2. 只针对未覆盖的技能输出差距条目,已覆盖的技能不输出
|
||||
3. 每个差距条目包含三个字段:
|
||||
- keyword:缺失的技能,必须是岗位技能标签中的原文,不要修改
|
||||
- title:差距点的简短标题,不超过 12 个字(例如"缺少 SQL 关键词")
|
||||
- description:结合岗位要求的一句说明或建议,不超过 30 个字
|
||||
4. 返回 JSON 数组格式,如:
|
||||
[{{"keyword": "SQL", "title": "缺少 SQL 关键词", "description": "岗位要求数据查询分析能力,简历未体现。"}}]
|
||||
5. 如果全部覆盖,返回空数组 []
|
||||
6. 只返回 JSON 数组,不要其他内容"""
|
||||
|
||||
SUMMARY_OPTIMIZE_PROMPT = """你是一个简历优化助手。根据目标岗位信息,微调用户的个人概述。
|
||||
|
||||
|
||||
Reference in New Issue
Block a user