# resume_generator.py
import os
import requests
from docx import Document
from docx.shared import Pt
from docx.enum.text import WD_PARAGRAPH_ALIGNMENT
from docx.oxml.ns import qn
from docx.enum.style import WD_STYLE_TYPE
# === 🔧 用户只需修改以下两个变量即可适配任何岗位 ===
TARGET_POSITION = "【华为OD】ai软件开发"
JOB_DESCRIPTION = """
【业务全景】
昇腾计算产业是基于昇腾系列(HUAWEI Ascend)处理器和基础软件构建的全栈 AI计算基础设施、行业应用及服务,包括昇腾AI系列处理器、系列硬件、CANN(Compute Architecture for Neural Networks,异构计算架构)、AI计算框架、应用使能、开发工具链、管理运维工具、行业应用及服务等全产业链。
【岗位方向】
我们有多个研发岗位,具体方向如下:
①通用软件开发工程师
1、参与计算网络互联,AI加速器相关通信优化的方案分析,设计,仿真和开发;
2、负责通信技术,网络拓扑的洞察和需求分析;
3、参与AI系统集群和芯片微架构的软硬件联合设计调优;
②AI软件开发工程师
1、面向行业AI使能创新场景,快速实现AI相关框架、模型算法和行业SDK的适配、优化和增强;
2、落地算法和SDK能够充分发挥华为昇腾处理器及Atlas产品的极致性能;
3、积极跟进AI学术界和工业界的最新动态,大模型&大应用(CV/NLP等领域)的模型分析、算法选型、竞争力分析等,推进AI技术在社会生产中的实际应用和落地;
【学历要求】
全日制本科及以上,接受跨行,转专业,考公、考研失败
【岗位要求】
1. 熟悉掌握Python/C/C++/Go/Java中任意一种或多种编程语言;
2. 熟悉操作系统、虚拟机、Docker/K8s/容器等基础原理,具备Python/Shell等脚本开发能力,熟悉AI训练业务流程更佳。
3. 了解服务器基础知识和AI基础知识,有模型、框架、容器开发或参与过项目经历更佳
"""
# === 配置 DeepSeek API(请确保 API_KEY 正确)===
API_KEY = "sk-1f0e0319de4349d1af????"
API_ENDPOINT = "https://api.deepseek.com/v1/chat/completions"
HEADERS = {
"Authorization": f"Bearer {API_KEY}",
"Content-Type": "application/json"
}
# === 📄 你的固定个人信息 ===
personal_info = {
"name": "谢忠发",
"email": "13162506637@163.com",
"phone": "13162506637",
"education_school": "上海大学",
"education_major": "土木工程",
"degree": "硕士",
"graduation_time": "2023.09",
"current_company": "贝壳找房科技有限公司",
"work_duration": "2023.07 – 至今",
"location": "上海",
}
# === 🧠 构建给 AI 的智能 Prompt ===
prompt = f"""
你是一名资深HR和技术简历专家,请根据候选人的背景和目标岗位要求,生成一份高度匹配、专业可信、结构完整的中文简历。
【候选人背景】
姓名:{personal_info['name']}
邮箱:{personal_info['email']}
电话:{personal_info['phone']}
教育:{personal_info['education_school']},{personal_info['education_major']},{personal_info['degree']}(2020.09 – {personal_info['graduation_time']})
当前工作:{personal_info['current_company']},技术支持工程师,{personal_info['work_duration']}
所在地:{personal_info['location']}
【可复用经历素材】
- 在贝壳找房:用 Python 自动化生成运营日报(3小时 → 10分钟),处理日志、SQL 查询优化、Pandas 数据分析
- 实习1(上海数智科技):Python 处理工程监测数据,做清洗、异常检测、可视化
- 实习2(星图数据科技):参与功能测试,写测试用例,API 自动化,使用 Postman、Jira
- 技术栈:Python、Shell、SQL、Linux、Git、MySQL、Pandas、Matplotlib、Postman、Jira
- 项目方向:自动化脚本、数据清洗、日志分析、报表生成、异常检测
【目标岗位】:{TARGET_POSITION}
【岗位要求】:
{JOB_DESCRIPTION}
【输出要求】
- 只输出简历内容,不要加“说明”“注意”等解释性文字
- 不使用Markdown、不要加粗
- 语言专业、真实、有说服力,避免夸大
- 所有内容必须与【岗位要求】强相关,使用关键词如“测试用例”“缺陷管理”“自动化测试”“性能测试”“沟通能力”
- 时间线合理,不冲突
【请生成以下8个部分的简历内容,每部分用【】标注】
1. 【个人简介】
- 2~3行,突出“土木工程硕士转型技术”“2年Python实战经验”“掌握自动化与测试基础”
- 强调“学习能力强”“工程化思维”“代码规范”“可塑性强,适合培养”
2. 【教育背景】
- 格式:学校|专业|学历|时间
- 主修课程:数值分析、结构力学、运筹学
- 补充:自学 Python、数据库、数据分析,完成多个自动化项目
3. 【实习经历】 ✅ 必须包含至少两段,每段格式:公司|岗位|时间
- 每条描述必须满足以下要求:
• 每条 bullet point 至少2行,总内容不少于4行
• 必须包含:业务背景 + 具体动作 + 使用技术 + 量化成果
• 使用“•”开头作为项目符号
• 示例格式:
• 参与XX系统功能测试,负责从需求文档提取测试点,设计并执行30+条测试用例……
使用Postman进行API接口验证,通过Jira提交并跟踪15+缺陷,推动修复率达100%
4. 【工作经历】 ✅ 必须详细,至少5条 bullet point,每条≥2行
- 要求:
• 每条必须包含:任务背景 + 技术实现 + 团队协作 + 量化提升
• 使用“•”开头作为项目符号
• 示例:
• 针对公司运营部门每日手动整理数据效率低的问题,设计并开发Python自动化脚本……
脚本集成Pandas进行数据清洗与聚合,结合SQLAlchemy连接MySQL执行查询,最终实现日报生成时间从3小时缩短至10分钟,准确率提升至99.8%
5. 【核心能力】
- 分类列出,每类3-5项,使用“•”开头
- 建议分类:编程语言、测试技能、开发环境、数据库、自动化工具
6. 【项目经验】 ✅ 必须包含至少三段,每段格式:项目名|时间
- 每条描述要求:
• 每个项目3条 bullet point,每条≥2行
• 结构:背景痛点 → 技术实现(含技术栈) → 量化成果
• 使用“•”开头作为项目符号(统一风格)
• 示例:
• 针对线上接口频繁变更导致回归测试耗时的问题,基于Python+Requests搭建自动化测试框架……
集成Postman用例导出为JSON,使用unittest编写断言逻辑,定时执行并生成HTML报告……
覆盖80%核心接口,回归测试时间从2天缩短至2小时,缺陷发现率提升40%
7. 【证书与荣誉】
- 列出4项左右,如 CDA、CET-6、数学建模、奖学金
8. 【自我评价】
- 1段,强调“非科班但实践强”“热爱技术”“学习快”“愿从基础做起”
【重要要求】
- 只输出内容,不要加“说明”“注意”等解释性文字
- 不使用Markdown、不要加粗
- 语言专业、真实、有说服力,避免夸大
- 所有内容必须与【岗位要求】强相关
- 时间线合理,不冲突
- 确保【实习经历】≥2段,【项目经验】≥3段
"""
# === 🚀 发送请求并生成 Word 文档 ===
def generate_resume():
payload = {
"model": "deepseek-reasoner",
"messages": [{"role": "user", "content": prompt}],
"max_tokens": 2000,
"temperature": 0.6,
"stream": False
}
try:
response = requests.post(API_ENDPOINT, json=payload, headers=HEADERS)
response.raise_for_status()
result = response.json()
resume_content = result["choices"][0]["message"]["content"].strip()
print("✅ 简历内容已由AI生成!\n")
# 创建保存目录
save_dir = "./我的简历"
os.makedirs(save_dir, exist_ok=True)
file_path = os.path.join(save_dir, f"{personal_info['name']}_{TARGET_POSITION}.docx")
# 创建 Word 文档
doc = Document()
style = doc.styles['Normal']
style.font.name = '微软雅黑'
style._element.rPr.rFonts.set(qn('w:eastAsia'), '微软雅黑')
style.font.size = Pt(10.5)
# 自定义标题样式
if 'SectionTitle' not in doc.styles:
section_title_style = doc.styles.add_style('SectionTitle', WD_STYLE_TYPE.PARAGRAPH)
section_title_style.base_style = style
section_title_style.font.size = Pt(13)
section_title_style.font.bold = True
section_title_style.font.name = '微软雅黑'
section_title_style._element.rPr.rFonts.set(qn('w:eastAsia'), '微软雅黑')
section_title_style.paragraph_format.space_after = Pt(6)
else:
section_title_style = doc.styles['SectionTitle']
# 添加简历内容
title = doc.add_heading('', level=0)
runner = title.add_run(personal_info['name'])
runner.font.size = Pt(18)
runner.bold = True
runner.font.name = '微软雅黑'
runner._element.rPr.rFonts.set(qn('w:eastAsia'), '微软雅黑')
title.alignment = WD_PARAGRAPH_ALIGNMENT.CENTER
contact = f"邮箱:{personal_info['email']} | 手机:{personal_info['phone']} | 地点:{personal_info['location']}"
p_contact = doc.add_paragraph(contact)
p_contact.alignment = WD_PARAGRAPH_ALIGNMENT.CENTER
p_contact.style = style
separator = doc.add_paragraph("─" * 50)
separator.alignment = WD_PARAGRAPH_ALIGNMENT.CENTER
lines = [line.strip() for line in resume_content.split('\n') if line.strip()]
in_resume_body = False
current_section = ""
ignore_keywords = ["说明", "注意", "备注", "提示", "要求", "背景", "示例", "重要要求"]
for line in lines:
# 跳过无关说明
if any(keyword in line for keyword in ignore_keywords):
continue
# 处理章节标题
if line.startswith("【") and line.endswith("】"):
in_resume_body = True
current_section = line[1:-1]
heading = doc.add_paragraph(current_section)
heading.style = 'SectionTitle'
elif in_resume_body:
# 判断是否为经历标题:包含“|”且不是邮箱或普通文本
if "|" in line and len(line.split("|")) >= 2 and "@" not in line and ":" not in line and "·" not in line:
# 加粗显示公司/项目名
p = doc.add_paragraph()
p.add_run(line).bold = True
p.style = style
# 处理 bullet point(以 • 开头)
elif line.startswith("•"):
clean_line = line[1:].strip()
para = doc.add_paragraph(clean_line, style='List Bullet')
# 处理缩进或换行的延续内容(自动加 bullet)
elif (line.startswith(" ") or line.startswith("\t")) and not line.startswith("【"):
# 作为上一条的延续,也加 bullet
para = doc.add_paragraph(line.strip(), style='List Bullet')
# 其他普通段落
else:
doc.add_paragraph(line)
# 保存文件
doc.save(file_path)
print(f"🎉 简历已成功生成:{os.path.abspath(file_path)}")
except Exception as e:
print(f"❌ 生成失败:{e}")
import traceback
traceback.print_exc()
# === 🏁 运行脚本 ===
if __name__ == "__main__":
generate_resume()
如果你已经熟悉了api调用,文件路径配置,那么读取这段内容并不难。思路就是:给deepseek思考模型人设限制帮你写简历 内容真的逼真 简历会自生成到word文件中==
Python借助DeepSeek生成简历思路

2943

被折叠的 条评论
为什么被折叠?



