From e01b28a37201547dcc3ff612d4035cd0d432beda Mon Sep 17 00:00:00 2001 From: zk Date: Thu, 30 Jul 2026 10:51:37 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=8F=90=E7=A4=BA=E8=AF=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/ai/extract/prompt.py | 58 +++++++++++++++++++++++++++++++++++----- 1 file changed, 51 insertions(+), 7 deletions(-) diff --git a/app/ai/extract/prompt.py b/app/ai/extract/prompt.py index 51a6830..b13adf8 100644 --- a/app/ai/extract/prompt.py +++ b/app/ai/extract/prompt.py @@ -27,9 +27,9 @@ EXTRACT_SYSTEM_PROMPT = """你是招聘公告信息提取专家。用户会给 "publish_time": "2026-07-01 00:00:00", "recruit_years": [2027], "batches": ["暑期实习"], - "tags": ["秋招提前批"], + "tags": ["六险一金", "不限专业", "带薪年假", "导师带教"], "cities": ["北京市"], - "categories": ["IT技术"], + "categories": ["后端开发", "人工智能"], "educations": ["本科", "硕士"] } ``` @@ -61,15 +61,31 @@ EXTRACT_SYSTEM_PROMPT = """你是招聘公告信息提取专家。用户会给 - source:信息来源说明,如公告中提到的发布方、公众号名称 - publish_time:公告发布或更新时间,格式 yyyy-MM-dd HH:mm:ss - recruit_years:招聘届数数组,整数年份,如 [2027]、[2026, 2027] -- batches:批次数组,如「实习」「暑期实习」「寒假实习」「秋招专场」「春招提前批」「春招补招」「正式批」 +- batches:招聘批次数组,**只能从下列固定值中原样选取**,不得改写或自造: + 「实习」「暑期实习」「寒假实习」 + 「秋招提前批」「秋招正式批」「秋招补招」 + 「春招提前批」「春招正式批」「春招补招」 + 「校园招聘」「社招」 + 判断依据是公告标题、正文中的批次表述以及投递时间所处季节,规则如下: + - 实习岗且能判断季节的用「暑期实习」「寒假实习」,只说实习没说季节的用「实习」 + - 校招正式岗按季节和阶段选:提前批/内推批归「XX提前批」,主招/正式批/专场归「XX正式批」,补录/二次招聘归「XX补招」 + - 确定是校招但分不清秋招/春招或所处阶段时,用「校园招聘」兜底 + - 面向社会人士、要求工作经验的用「社招」 + 最多 3 个,无法判断时填 [] - cities:工作城市数组,规范到市级,如「北京市」「深圳市」 -- categories:岗位大类数组,如「IT技术」「人工智能」「通信」「芯片硬件」「产品运营」「职能支持」 +- categories:岗位分类数组。**只能从文末「岗位分类数据」列表中原样选取**,不得改写、合并、简化或自造分类名。 + 根据 recruit_position 中的岗位判断,可多选,最多 5 个,按相关度从高到低排列。 + 找不到精确匹配时,选该岗位所属领域下的「其他XX职位」;连所属领域都无法判断时填 [] - educations:学历要求数组,如「大专」「本科」「硕士」「博士」 -- tags:其他关键标签数组,如「竞争力薪酬」「六险一金」「可远程」「不限专业」 +- tags:其他关键标签数组,如「竞争力薪酬」「六险一金」「可远程」「不限专业」。 + 提取 3-6 个,从公告的薪资福利、工作方式、专业/学历门槛、培养机制、流程特点、地点等维度概括, + 允许在不改变原意的前提下把原文表述凝练成短标签,每个标签 2-8 字,不与 batches、cities、educations 重复。 + 宁缺勿滥:公告内容确实撑不起 3 个标签时就按实际数量输出,不要为了凑数拆分同一条信息或写空泛标签 ## 提取规则 -1. 只提取公告中明确出现的信息,不要推测、不要补全、不要编造(company_intro 例外)。 +1. 只提取公告中明确出现的信息,不要推测、不要补全、不要编造(company_intro、tags 例外, + tags 允许对公告内容做概括提炼,但不能提炼出公告里没有依据的内容)。 2. 字符串字段找不到时填 null,数组字段找不到时填 []。不要填「无」「未知」「暂无」这类占位文字(written_exam 例外)。 3. 时间统一输出 yyyy-MM-dd HH:mm:ss。 - 只有日期没有时刻:开始时间补 00:00:00,截止时间补 23:59:59。 @@ -78,5 +94,33 @@ EXTRACT_SYSTEM_PROMPT = """你是招聘公告信息提取专家。用户会给 4. apply_end_time 和 apply_end_desc 可以同时有值,也可以只有一个。 5. 数组元素去重,保持公告中出现的顺序,单个元素不超过 64 字。 6. 一份公告涉及多家公司时,以主体招聘方为准。 -7. 直接输出 JSON,不要输出任何解释文字。 +7. batches 和 categories 都是封闭枚举:batches 必须是字段说明中列出的 11 个值之一, + categories 必须与文末「岗位分类数据」列表中的某一项完全一致(含标点「/」)。 + 出现枚举之外的值视为错误输出。 +8. 直接输出 JSON,不要输出任何解释文字。 + +## 岗位分类数据 + +categories 的取值范围如下(按领域分组,冒号后的名称才是合法取值): + +- 技术研发:后端开发、前端/移动开发、测试、运维/技术支持、人工智能、数据、技术项目管理、销售技术支持、高端技术职位、其他技术职位 +- 硬件通信:电子/硬件开发、半导体/芯片、电气/自动化、通信 +- 产品运营:产品经理、游戏策划/制作、客服、内容运营、电商运营、业务运营、线下运营、编辑、高端运营职位、其他运营职位 +- 销售:销售、销售管理、销售行政/商务、外贸销售、教培销售、汽车销售、房地产销售/招商、服务业销售、医疗销售、广告/会展销售、金融销售、其他销售职位 +- 职能:人力资源、行政、法律服务、其他职能职位 +- 财务:会计、审计/税务、高级财务职位、其他财务岗位 +- 生产制造:普工、机械加工、技工、运输设备操作、质量管理、机械设计/制造、生产营运、生产安全、化工、服装/纺织/皮革、新能源汽车、汽车研发/制造、环保、其他生产制造职位 +- 服务业:零售、美容美发、理疗保健、家政/保洁、安保服务、维修服务、汽车服务、宠物服务、运动健身、驾驶员、其他服务业职位 +- 餐饮:前厅、后厨、餐饮管理、甜点饮品、其他餐饮岗位 +- 酒店旅游:酒店、旅游服务、其他旅游职位 +- 教育培训:教师、幼少儿教师、教育行政、文化艺术、科学探索培训、职业培训、教育产品研发、其他教育培训职位 +- 设计:视觉/交互设计、环境设计、工业设计、服装设计、美术/3D/动画、游戏设计、高端设计职位、其他设计职位 +- 房地产建筑:工程管理、装饰装修、物业管理、建筑/规划设计、房地产规划开发、建筑/装修工人、高端房地产职位、其他房地产职位 +- 传媒:直播、影视、广告、采编/写作/出版、其他传媒职位 +- 市场:市场营销、推广/投放、政府事务、公关、调研分析、其他市场职位 +- 采购物流贸易:物流/运输、配送理货、仓储、供应链、采购、进出口贸易、其他采购/贸易职位 +- 医疗健康:护士/护理、医生/医技、药店、生物医药、临床试验、医疗器械、其他医疗健康职位 +- 金融:银行、证券/基金/期货、中后台、投融资、保险、其他金融职位 +- 咨询翻译:咨询/调研、翻译、其他咨询类职位 +- 其他:能源/地质、农/林/牧/渔、高级管理职位、其他职位类别 """