简单易用的python简历生成思路-自己申请个deepseek key就好

Python借助DeepSeek生成简历思路
# 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文件中==

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值