- 全链路:多源JD接入/清洗交叉验证/结构化抽取(星火+离线双通道)/时序知识图谱/新岗位发现/演化分析/人岗匹配/学习路径 - WebUI 五视图:驾驶舱/图谱工作台/岗位演化/匹配(单人+批量)/学习路径 - 设置中心(config.json)/Token鉴权/SQLite状态库/语义向量通道(BGE-M3本地或联网API) - 71 个 pytest 用例;数据目录仅保留结构(.gitkeep),数据由 scripts/generate_dataset.py 复现
329 lines
5.5 KiB
JSON
329 lines
5.5 KiB
JSON
{
|
||
"jd_extraction_accuracy": 1.0,
|
||
"resume_extraction_accuracy": 1.0,
|
||
"match_accuracy": 1.0,
|
||
"jd_detail": {
|
||
"accuracy": 1.0,
|
||
"title_accuracy": 1.0,
|
||
"fields": {
|
||
"required_skills": {
|
||
"precision": 1.0,
|
||
"recall": 1.0,
|
||
"f1": 1.0
|
||
},
|
||
"preferred_skills": {
|
||
"precision": 1.0,
|
||
"recall": 1.0,
|
||
"f1": 1.0
|
||
},
|
||
"responsibilities": {
|
||
"precision": 1.0,
|
||
"recall": 1.0,
|
||
"f1": 1.0
|
||
},
|
||
"scenarios": {
|
||
"precision": 1.0,
|
||
"recall": 1.0,
|
||
"f1": 1.0
|
||
}
|
||
},
|
||
"samples": 144,
|
||
"bad_lines": 0
|
||
},
|
||
"resume_detail": {
|
||
"resume_full.txt": {
|
||
"precision": 1.0,
|
||
"recall": 1.0,
|
||
"f1": 1.0,
|
||
"extra": [],
|
||
"missing": []
|
||
},
|
||
"resume_partial.txt": {
|
||
"precision": 1.0,
|
||
"recall": 1.0,
|
||
"f1": 1.0,
|
||
"extra": [],
|
||
"missing": []
|
||
},
|
||
"resume_mismatch.txt": {
|
||
"precision": 1.0,
|
||
"recall": 1.0,
|
||
"f1": 1.0,
|
||
"extra": [],
|
||
"missing": []
|
||
},
|
||
"resume_frontend_full.txt": {
|
||
"precision": 1.0,
|
||
"recall": 1.0,
|
||
"f1": 1.0,
|
||
"extra": [],
|
||
"missing": []
|
||
},
|
||
"resume_data_partial.txt": {
|
||
"precision": 1.0,
|
||
"recall": 1.0,
|
||
"f1": 1.0,
|
||
"extra": [],
|
||
"missing": []
|
||
},
|
||
"resume_llm_full.txt": {
|
||
"precision": 1.0,
|
||
"recall": 1.0,
|
||
"f1": 1.0,
|
||
"extra": [],
|
||
"missing": []
|
||
},
|
||
"resume_legacy_mismatch.txt": {
|
||
"precision": 1.0,
|
||
"recall": 1.0,
|
||
"f1": 1.0,
|
||
"extra": [],
|
||
"missing": []
|
||
}
|
||
},
|
||
"match_detail": [
|
||
{
|
||
"job": "Java开发工程师",
|
||
"expected": true,
|
||
"score": 76.67,
|
||
"ok": true
|
||
},
|
||
{
|
||
"job": "Java开发工程师",
|
||
"expected": false,
|
||
"score": 6.67,
|
||
"ok": true
|
||
},
|
||
{
|
||
"job": "Python开发工程师",
|
||
"expected": true,
|
||
"score": 75.0,
|
||
"ok": true
|
||
},
|
||
{
|
||
"job": "Python开发工程师",
|
||
"expected": false,
|
||
"score": 6.67,
|
||
"ok": true
|
||
},
|
||
{
|
||
"job": "前端工程师",
|
||
"expected": true,
|
||
"score": 75.0,
|
||
"ok": true
|
||
},
|
||
{
|
||
"job": "前端工程师",
|
||
"expected": false,
|
||
"score": 6.67,
|
||
"ok": true
|
||
},
|
||
{
|
||
"job": "数据工程师",
|
||
"expected": true,
|
||
"score": 75.0,
|
||
"ok": true
|
||
},
|
||
{
|
||
"job": "数据工程师",
|
||
"expected": false,
|
||
"score": 6.67,
|
||
"ok": true
|
||
},
|
||
{
|
||
"job": "算法工程师",
|
||
"expected": true,
|
||
"score": 75.0,
|
||
"ok": true
|
||
},
|
||
{
|
||
"job": "算法工程师",
|
||
"expected": false,
|
||
"score": 6.67,
|
||
"ok": true
|
||
},
|
||
{
|
||
"job": "数据分析师",
|
||
"expected": true,
|
||
"score": 75.0,
|
||
"ok": true
|
||
},
|
||
{
|
||
"job": "数据分析师",
|
||
"expected": false,
|
||
"score": 10.0,
|
||
"ok": true
|
||
},
|
||
{
|
||
"job": "测试开发工程师",
|
||
"expected": true,
|
||
"score": 75.0,
|
||
"ok": true
|
||
},
|
||
{
|
||
"job": "测试开发工程师",
|
||
"expected": false,
|
||
"score": 6.67,
|
||
"ok": true
|
||
},
|
||
{
|
||
"job": "运维工程师(SRE)",
|
||
"expected": true,
|
||
"score": 75.0,
|
||
"ok": true
|
||
},
|
||
{
|
||
"job": "运维工程师(SRE)",
|
||
"expected": false,
|
||
"score": 6.67,
|
||
"ok": true
|
||
},
|
||
{
|
||
"job": "嵌入式工程师",
|
||
"expected": true,
|
||
"score": 75.0,
|
||
"ok": true
|
||
},
|
||
{
|
||
"job": "嵌入式工程师",
|
||
"expected": false,
|
||
"score": 6.67,
|
||
"ok": true
|
||
},
|
||
{
|
||
"job": "物联网工程师",
|
||
"expected": true,
|
||
"score": 75.0,
|
||
"ok": true
|
||
},
|
||
{
|
||
"job": "物联网工程师",
|
||
"expected": false,
|
||
"score": 6.67,
|
||
"ok": true
|
||
},
|
||
{
|
||
"job": "NLP工程师",
|
||
"expected": true,
|
||
"score": 75.0,
|
||
"ok": true
|
||
},
|
||
{
|
||
"job": "NLP工程师",
|
||
"expected": false,
|
||
"score": 6.67,
|
||
"ok": true
|
||
},
|
||
{
|
||
"job": "CV工程师",
|
||
"expected": true,
|
||
"score": 75.0,
|
||
"ok": true
|
||
},
|
||
{
|
||
"job": "CV工程师",
|
||
"expected": false,
|
||
"score": 6.67,
|
||
"ok": true
|
||
},
|
||
{
|
||
"job": "云原生工程师",
|
||
"expected": true,
|
||
"score": 75.0,
|
||
"ok": true
|
||
},
|
||
{
|
||
"job": "云原生工程师",
|
||
"expected": false,
|
||
"score": 6.67,
|
||
"ok": true
|
||
},
|
||
{
|
||
"job": "AI产品经理",
|
||
"expected": true,
|
||
"score": 75.0,
|
||
"ok": true
|
||
},
|
||
{
|
||
"job": "AI产品经理",
|
||
"expected": false,
|
||
"score": 6.67,
|
||
"ok": true
|
||
},
|
||
{
|
||
"job": "Go开发工程师",
|
||
"expected": true,
|
||
"score": 75.0,
|
||
"ok": true
|
||
},
|
||
{
|
||
"job": "Go开发工程师",
|
||
"expected": false,
|
||
"score": 6.67,
|
||
"ok": true
|
||
},
|
||
{
|
||
"job": "前端工程师",
|
||
"expected": true,
|
||
"score": 70.0,
|
||
"ok": true
|
||
},
|
||
{
|
||
"job": "数据分析师",
|
||
"expected": true,
|
||
"score": 70.0,
|
||
"ok": true
|
||
},
|
||
{
|
||
"job": "运维工程师(SRE)",
|
||
"expected": true,
|
||
"score": 70.0,
|
||
"ok": true
|
||
},
|
||
{
|
||
"job": "前端工程师",
|
||
"expected": true,
|
||
"score": 90.0,
|
||
"ok": true
|
||
},
|
||
{
|
||
"job": "数据分析师",
|
||
"expected": true,
|
||
"score": 80.0,
|
||
"ok": true
|
||
},
|
||
{
|
||
"job": "数据分析师",
|
||
"expected": false,
|
||
"score": 20.0,
|
||
"ok": true
|
||
}
|
||
],
|
||
"real_jd": {
|
||
"accuracy": 0.9995,
|
||
"title_accuracy": 1.0,
|
||
"fields": {
|
||
"required_skills": {
|
||
"precision": 1.0,
|
||
"recall": 0.9988,
|
||
"f1": 0.9994
|
||
},
|
||
"preferred_skills": null,
|
||
"scenarios": {
|
||
"precision": 1.0,
|
||
"recall": 1.0,
|
||
"f1": 1.0
|
||
}
|
||
},
|
||
"samples": 200,
|
||
"bad_lines": 0
|
||
},
|
||
"real_resume": {
|
||
"accuracy": 1.0,
|
||
"name_accuracy": 1.0,
|
||
"phone_accuracy": 1.0,
|
||
"samples": 50,
|
||
"phone_samples": 50,
|
||
"empty_skill_resumes": 28
|
||
}
|
||
} |