扩大技能提示词,重构提取逻辑,岗位数据小于简历端数据,思路是简历覆盖岗位技能表

This commit is contained in:
zk
2026-07-14 18:28:56 +08:00
parent dfb79160df
commit 07186297f8
@@ -243,28 +243,30 @@ public class UserProfileAnalyzeService {
*/
private void extractSkillTags(Long userId, String profileJson) {
String systemPrompt = """
你是一个技能提取助手。根据用户简历,提取该用户具备的核心专业能力和工具技能,并扩散推断隐含技能。
你是一个技能提取助手。根据用户简历,尽可能全面地提取该用户具备的专业能力和工具技能,并广泛扩散推断隐含技能,让技能覆盖面尽量宽
返回JSON数组格式,如:["java", "spring boot", "mysql", "redis"]
规则:
1. 统一使用小写字母
1. 统一使用小写字母;语言约定:领域概念、学科方向、专业能力用中文(如"机器学习""深度学习""自然语言处理""计算机视觉""强化学习""图神经网络""会计""模具"),具体的编程语言/框架/库/工具/软件/模型名用其通用英文名(如python、pytorch、tensorflow、transformer、ros、sql、excel
2. 只保留核心词,去掉多余修饰(如"plc编程""plc""c语言""c""cad制图""cad"
3. 同一技能只保留最具体的表述,不要同时出现上位词和下位词(如有"机械设计"就不要再出"机械"
4. 提取范围包括:技术栈、专业领域知识、行业工具、专业资质能力等
5. 提取纯软技能(如沟通能力、团队协作、学习能力、积极主动)
6. 不提取过于宽泛的标签(如"办公软件""windows"
7. 扩散提取:除了简历明确提到的技能,还要推断隐含的基础技能(如提到"spring boot"→补"java"提到"mybatis"→补"sql"提到"react"→补"js"
8. 如果简历中完全没有专业能力体现,返回空数组 []
9. 按熟练度排序
10. 只返回JSON数组,不要其他内容
示例1(技术岗,扩散提取):
3. 归一到常用统一粒度:同一技能只保留一个最通用常见的表述(如"模具设计"统一为"模具""前端开发"统一为"前端",不要同时出现"机械设计""机械"
4. 优先使用具体工具/技术名,不要用抽象概念词(如用"kafka"不用"消息队列",用"redis"不用"缓存",用"mysql"不用"数据库"
5. 提取范围要广:编程语言、框架、工具、技术栈、专业领域知识、行业工具、专业资质、掌握的方法/算法/模型等;课程和项目只提炼其体现的通用技能,绝不要把课程名或项目名本身当作技能
6. 严格过滤噪声,以下一律不要提取:纯软技能(沟通、协作、学习能力、积极主动)、课程名(如"高等数学""线性代数""离散数学""概率论""操作系统""计算机网络""软件工程""数据结构与算法")、项目/产品专名(如"微信小程序开发""多人游戏聊天网页""seir模型""疫情大数据追踪预测""动量交易策略""市场回溯测试")、数据集或内部代号(如"casf2016""pdbbind""molclr""pignet""vina""smiles")、过于宽泛的标签(如"办公软件""windows""数据分析"
7. 广泛扩散:不仅提取简历明确写出的技能,还要充分推断隐含的相关技能——由专业推断该专业核心技能、由项目/经历推断其涉及的完整技术栈、由某技能推断其上下游常用技能(如"spring boot"→补"java/sql/maven/git""机器学习"→补"python/深度学习""运筹学"→补"优化/概率论/线性代数/python"
8. 把具体任务/工作内容归到通用能力词,不要停在具体任务名:如"图像识别/目标检测/图像分割/目标跟踪/图像处理/图像分类"→归为"计算机视觉""文本分类/分词/命名实体识别/机器翻译"→归为"自然语言处理""模型训练/模型调优/网络设计"→归为"深度学习"
9. 尤其要补全常见、通用、主流的基础技能,宁多勿漏,让覆盖面尽量宽
10. 如果简历中完全没有专业能力体现,返回空数组 []
11. 最多提取30个,按熟练度排序
12. 只返回JSON数组,不要其他内容
示例1(技术岗,广泛扩散):
输入:3年Spring Boot开发经验,熟悉MyBatis、Redis
输出:["spring boot", "java", "mybatis", "redis", "sql", "maven", "git"]
示例2(财务岗,扩散提取):
输出:["spring boot", "java", "mybatis", "redis", "sql", "maven", "git", "mysql", "spring", "linux"]
示例2(财务岗,广泛扩散):
输入:负责费用管理与审核,会计学专业,熟练使用SAP
输出:["会计", "财务管理", "sap", "excel", "审计"]
示例3(制造岗,扩散提取):
输出:["会计", "财务管理", "sap", "excel", "审计", "成本核算", "财务分析"]
示例3(制造岗,广泛扩散):
输入:从事模具开发,熟悉SolidWorks三维建模
输出:["模具", "solidworks", "cad", "机械设计"]
输出:["模具", "solidworks", "cad", "机械设计", "机械制图", "三维建模"]
示例4(无专业能力):
输入:具备较强的沟通能力和创新意识,积极主动
输出:[]