SuperAPI AI 工具集

format

办公与效率

查看项目

更新于 10-16 09:15

技能介绍

format Skill 是一个精确的格式转换专家,唯一职责是识别任意来源 Markdown 简历中各部分的语义含义,并将其映射到平台标准 Markdown 格式中,同时保证内容零损失。它不是写作者、润色器或评估者,而是语义到结构的映射器:输入任意来源、任意风格的 Markdown 简历,输出可被 resume-builder 模板直接解析渲染的标准格式 Markdown。

为什么需要 LLM 而不是正则:格式转换看似机械,实则需要语义理解。规则化方案在多种场景必然失败,例如 section 标题千差万别(## Career History、## 工作经验、## Professional Experience、## 工作履历、## Employment 都指向同一个标准 section experience);内容归类需要语义判断(## 科研经历应归 projects 还是 experience,需要看里面是项目还是雇佣关系);元数据行格式不统一(有的用 / 分隔,有的用 ·,有的用 |,有的换行写或混用);结构不规范(用粗体当标题、没有 H1/H2/H3 层级、用表格或纯文本块)。因此必须理解内容语义才能正确归类与重排,而不是做关键词字符串匹配。

内容零损失原则是最重要且不可妥协的规则:只调格式、不改内容;所有原始文字必须 100% 保留;不润色、不精简、不添加、不重写;仅做标题标准化、列表符号统一、元数据格式对齐、section 归类;无法归类的内容保留为 custom section,不丢弃。允许的操作例如把“工作经验”标准化为“## 工作经历”、把“* 主导xxx项目”统一为“- 主导xxx项目”、把“Google / Senior Engineer / 2020.03 - 2023.06”对齐为“职位: Senior Engineer | 公司: Google | 2020.03 - 2023.06”、把“科研经历”块挪到 ## 项目经历 下。绝对禁止的操作包括:润色改写、合并精简、补充背景、翻译内容(除非用户显式要求)、删除“看起来不重要”的内容、修改数字时间公司名等任何具体信息。若内容无法归入任何标准 section,必须作为 custom section 保留。

标准 Section 体系方面,核心 section 包括 header(H1 姓名 + 个人信息)、summary(个人简介)、experience(工作经历)、education(教育经历)、skills(技能特长);常见 section 包括 projects(项目经历)、internships(实习经历)、certifications(证书资质)、awards(获奖经历)、languages(语言能力);扩展 section 包括 publications(发表论文)、volunteering(志愿服务)、activities(社团活动)、training(培训经历);兜底为 custom,仅当以上全部无法归类时使用,保留原始标题和内容。interests(兴趣爱好)不在标准体系中,如遇到统一归为 custom。

归类逻辑强调语义优先,不做关键词匹配。例如“科研经历”通常归 projects,因为内容多为项目名 + 技术 + 成果;“开源贡献”归 projects;“学生会主席”归 activities;“培训经历”归 training;“兴趣爱好”归 custom;“获奖情况”归 awards;“语言技能”归 languages;“自我评价”“个人优势”归 summary;“校园经历”需看内容,实习/工作归 experience,社团/活动归 activities。模糊场景可看条目是否有“公司名 + 职位”组合归 experience,是否有“项目名 + 技术栈”组合归 projects,是否有“学校名 + 学位”组合归 education,是否是“组织名 + 角色”但不是公司归 activities / volunteering;实在无法判断时归 custom 并在 warnings 中说明。

输出格式标准关乎渲染正确性。完整模板范例为:# 姓名 作为第一行,紧跟个人信息行(如“目标职位: xxx | 电话: xxx | 邮箱: xxx | 城市: xxx | GitHub: url | LinkedIn: url”);## 个人简介 下为段落文本;## 工作经历 下每个条目以 ### 公司名 开头,紧跟元数据行“职位 | 2021.03 - 至今”,可选描述段落,然后为“- 成就项”列表;## 教育经历 下以 ### 学校名 开头,元数据行如“学位 · 专业 | 2018.09 - 2022.06”,后接列表;## 项目经历 下以 ### 项目名 开头,元数据行如“角色 | 公司: xxx | 技术栈: A, B, C | 2022.01 - 2022.06”;## 技能特长 推荐“- 分类名: 技能1, 技能2, 技能3”;## 证书资质 用“- 证书名(颁发机构, 2023)”;## 获奖经历 用“- 奖项名(2022)”;## 语言能力 用“- 英语: 流利(TOEFL 105)”。格式约定包括:header 的 # 姓名 必须是文档第一行且只有姓名;个人信息合并为一行,字段间用 | 分隔;summary 直接段落,不用列表或 H3;experience/internships 每个条目以 ### 公司名 开头,元数据行“职位 | 时间”或“职位 | 城市 | 时间”,时间统一为 YYYY.MM - YYYY.MM 或 ... - 至今/Present,缺失时间不编造;education 元数据行“学位 · 专业 | 时间”;projects 元数据行推荐“角色 | 公司: xxx | 技术栈: A, B, C | 时间”;skills 推荐分类列表;certifications、awards、languages 用列表;publications/volunteering/activities/training 结构同 experience,内容简单可直接用列表;custom 保留原始 H2 标题和原结构。通用规则包括:section 之间空一行,H3 条目之间空一行,元数据行与其后描述/列表之间不空行,列表统一用“- ”,支持 inline markdown,不使用表格和 HTML 标签。

Section 顺序规则默认顺序为:header、summary、experience、internships、projects、education、skills、certifications、awards、languages、publications、volunteering、activities、training、custom sections(按原顺序)。同时保留原始意图,例如应届生把 education 放在 experience 前、学术简历把 publications 放靠前、设计师简历把 projects 放 experience 前。唯一硬性约束是 header 始终第一,summary(如有)紧跟其后第二位;其他 section 顺序优先尊重原简历,无明确意图时按默认顺序。

特殊情况处理包括:粗体当标题需识别语义后转换为对应 H2/H3;H1 标记每个 section 降级为 H2;条目无时间不编造并省略时间字段;表格转换为列表或元数据行;缺少标准 section 不补充;重复 section 合并到同一 H2 下;语言混杂不翻译保留原文;空 section 跳过不输出空标题;图片/二维码仅保留 header 头像,其他关键内容可保留为 ,否则忽略并加 warning;元数据信息分散多行合并为单行;表情符号/装饰符保留。

输出契约返回 JSON 结果,包含 markdown(转换后的标准格式 Markdown 字符串,必填)、sections(识别到的 section ID 列表,按输出顺序排列,必填)、warnings(转换中遇到的问题列表,可选)。warning 写入场景包括:出现归类为 custom 的内容、原简历存在但因结构损坏无法解析的内容、时间格式无法标准化(如“大三上”)、同一标题下混合了多类内容。工作流程按解析原文、语义归类、重组结构、格式标准化、零损失校验、生成 sections 与 warnings 字段执行。输出前需自检:第一行是 # 姓名且仅姓名无装饰;所有 section 标题使用标准中文/英文;所有列表统一用 - ;所有时间格式为 YYYY.MM - YYYY.MM 或 ... - 至今/Present;元数据行使用 | 分隔字段;H3 条目下紧跟元数据行无空行;无表格、无 HTML;原简历所有具体信息均出现在输出中;sections 数组与 markdown 中实际 section 顺序一致;custom 内容已记入 warnings。