大数跨境

Python + DeepSeek API:搭建一个AI自动化工作流(含完整代码)

Python + DeepSeek API:搭建一个AI自动化工作流(含完整代码) 机器学习AI算法工程
2026-09-17
6
导读:向AI转型的程序员都关注公众号 机器学习AI算法工程
图片

向AI转型的程序员都关注公众号 机器学习AI算法工程


配图1
2026年了,大模型API已经白菜价,但很多开发者还在手动复制粘贴让AI帮忙干活。本文教你用Python调用DeepSeek API,搭建一个真正能跑的自动化工作流——从日报生成到邮件分类,全程代码实战,开箱即用。

日常开发中有大量重复性工作:写日报、整理会议纪要、分类邮件、生成文档……这些任务有一个共同特点:规则明确、格式固定、但内容多变——完美契合大模型 的能力。

DeepSeek API兼容OpenAI SDK,调用成本极低(输入低至¥0.001/千token ),加上Python的生态优势,搭建自动化工作流事半功倍。

本文你将学到:

  • DeepSeek API的基础调用方法

  • 两个实战场景:自动生成工作日报 + 邮件智能分类

  • 性能优化技巧和成本控制策略

  • 完整可运行的代码示例


一、环境准备

1.1 安装依赖

pip install openai python-dotenv

DeepSeek API兼容OpenAI的SDK,所以直接用 openai 库即可,无需额外安装。

1.2 获取API Key

前往 platform.deepseek.com 注册并创建API Key。创建完成后,将Key保存到环境变量:

# .env 文件DEEPSEEK_API_KEY=sk-your-api-key-hereDEEPSEEK_BASE_URL=https://api.deepseek.com
安全提示: API Key属于敏感信息,切勿硬编码在代码中或提交到公开仓库。建议使用 .env 文件管理,并将 .env 加入 .gitignore。


1.3 基础调用封装

先封装一个通用的DeepSeek调用函数,后续所有场景都复用:

import osimport jsonfrom openai import OpenAIfrom dotenv import load_dotenv
load_dotenv()
client = OpenAI(    api_key=os.getenv("DEEPSEEK_API_KEY"),    base_url=os.getenv("DEEPSEEK_BASE_URL""https://api.deepseek.com"),)
def call_deepseek(    prompt: str,    system_prompt: str = "你是一个高效的AI助手。",    model: str = "deepseek-chat",    temperature: float = 0.3,    max_tokens: int = 2048,    json_mode: bool = False,) -> str:    """通用DeepSeek API调用封装"""    kwargs = {        "model": model,        "messages": [            {"role""system""content": system_prompt},            {"role""user""content": prompt},        ],        "temperature": temperature,        "max_tokens": max_tokens,    }    if json_mode:        kwargs["response_format"] = {"type""json_object"}
    response = client.chat.completions.create(**kwargs)    return response.choices[0].message.content

几个设计要点:

  • temperature=0.3:自动化场景需要稳定输出,调低随机性

  • json_mode:需要结构化输出时开启,DeepSeek支持JSON格式响应

  • system_prompt 可自定义,不同场景传入不同的角色设定


二、实战场景1:自动生成工作日报

2.1 需求分析

每天下班前,把今天做的事情整理成日报——格式固定但内容每天不同。我们可以把零散的工作记录丢给AI,让它按模板生成规范日报。

2.2 完整实现

def generate_daily_report(tasks: list[str], date: str = None) -> str:    """根据任务列表生成工作日报"""    from datetime import datetime    if date is None:        date = datetime.now().strftime("%Y年%m月%d日")
    task_list = "\n".join(f"- {t}" for t in tasks)
    system_prompt = """你是一位项目管理专家,擅长将零散的工作记录整理成结构清晰的日报。日报格式要求:1. 按项目/模块分类2. 每项工作标注完成状态(已完成/进行中/待跟进)3. 末尾添加明日计划(根据今日进展推断)4. 语言简洁专业,避免冗余"""
    prompt = f"""请根据以下工作记录,生成{date}的工作日报:
{task_list}
要求:按项目分类,标注完成状态,补充明日计划。"""
    return call_deepseek(prompt, system_prompt=system_prompt)

# === 使用示例 ===if __name__ == "__main__":    today_tasks = [        "修复了用户登录页面的CSS样式问题",        "完成了订单模块的接口对接,POST /api/orders 已通过联调",        "参加了下午3点的需求评审会,讨论了V2.3版本的搜索优化",        "写了一个Python脚本自动从数据库导出日报数据",        "帮新人配置了开发环境",        "Review了小李的PR #287(支付模块),提了3条建议",    ]
    report = generate_daily_report(today_tasks)    print(report)


2.3 输出效果

运行后会得到类似这样的日报:

2026年5月3日 工作日报
【前端开发】- 用户登录页面CSS样式修复 ✅ 已完成- V2.3搜索优化需求评审 🔄 进行中(已参会讨论)
【后端开发】- 订单模块接口对接(POST /api/orders) ✅ 已完成联调- Python数据导出脚本开发 ✅ 已完成
【团队协作】- 新人开发环境配置 ✅ 已完成- 支付模块代码评审(PR #287) ✅ 已完成,已反馈3条建议
明日计划:1. 跟进V2.3搜索优化的技术方案设计2. 处理PR #287反馈的修改项3. 启动用户反馈系统的前期调研

效果说明: AI自动完成了分类、状态标注、明日计划推断——把5分钟的手动整理压缩到3秒。

三、实战场景2:邮件智能分类

3.1 需求分析

每天收到大量邮件:客户咨询、技术讨论、会议通知、垃圾广告……手动分类费时费力。我们可以让AI读取邮件标题和摘要,自动打标签。

3.2 完整实现

def classify_emails(emails: list[dict]) -> list[dict]:    """批量邮件智能分类"""    system_prompt = """你是一个邮件分类助手。根据邮件标题和摘要,为每封邮件分配:1. category: 客户咨询 | 技术讨论 | 会议通知 | 内部通知 | 市场推广 | 其他2. priority: 高 | 中 | 低3. action_required: 是否需要回复(true/false)4. summary: 一句话摘要(15字以内)
返回JSON格式。"""
    email_data = json.dumps(        [{"id": i, "subject": e["subject"], "preview": e["preview"]}         for i, e in enumerate(emails)],        ensure_ascii=False, indent=2    )
    prompt = f"请分类以下邮件:\n{email_data}"
    result = call_deepseek(        prompt,        system_prompt=system_prompt,        json_mode=True,        temperature=0.1,  # 分类任务需要确定性输出    )    return json.loads(result)

# === 使用示例 ===if __name__ == "__main__":    test_emails = [        {"subject""关于Q2产品路线图的讨论""preview""张总,附件是Q2产品路线图初版,请过目..."},        {"subject""[紧急] 线上支付接口返回500错误""preview""生产环境支付接口从10:30开始大面积报错..."},        {"subject""5月团建活动报名""preview""各位同事,本月团建定于5月15日..."},        {"subject""Re: React 19迁移方案""preview""我觉得可以先用React 19的beta版本在测试环境验证..."},        {"subject""【推广】云服务器限时5折""preview""尊敬的开发者,我们为您准备了专属优惠..."},        {"subject""周报提醒:请提交本周工作总结""preview""请在本周五18:00前提交周报至OA系统..."},    ]
    results = classify_emails(test_emails)
    for r in results:        print(f"[{r['priority']}优先级] {r['category']}")        print(f"  {r['summary']}")        print(f"  需回复: {'是' if r['action_required'else '否'}")        print()

3.3 进阶:加上自动回复建议

对于需要回复的邮件,可以再调用一次API生成回复草稿:

def suggest_reply(email: dict, classification: dict) -> str:    """为需要回复的邮件生成回复建议"""    system_prompt = "你是一位专业的商务邮件回复助手,语气礼貌简洁。"
    prompt = f"""邮件主题:{email['subject']}邮件摘要:{email['preview']}分类:{classification['category']}优先级:{classification['priority']}
请生成一封回复草稿,50-100字即可。"""
    return call_deepseek(prompt, system_prompt=system_prompt)


四、性能优化技巧

4.1 批量处理而非逐条调用

# ❌ 低效:逐条调用for email in emails:    result = call_deepseek(f"分类这封邮件: {email}")
# ✅ 高效:批量处理results = classify_emails(emails)  # 一次调用处理全部

DeepSeek支持处理较长的上下文,单次调用处理10-20封邮件完全没问题,既省时间又省钱。

4.2 流式输出提升体验

对于日报这类长文本输出,可以用流式API提升用户体感:

def call_deepseek_stream(prompt: str, system_prompt: str = "你是AI助手。"):    """流式输出,逐字返回"""    stream = client.chat.completions.create(        model="deepseek-chat",        messages=[            {"role""system""content": system_prompt},            {"role""user""content": prompt},        ],        stream=True,    )    for chunk in stream:        if chunk.choices[0].delta.content:            yield chunk.choices[0].delta.content
# 使用for text in call_deepseek_stream("帮我写一封感谢信"):    print(text, end="", flush=True)

4.3 合理设置 max_tokens

不同任务需要的输出长度不同,精准设置 max_tokens 可以避免浪费:

任务类型
建议 max_tokens
说明
分类/打标签
512
输出很短,无需多给
日报/摘要
1024-2048
中等长度
长文生成
4096
充分展开

4.4 错误重试机制

API调用偶尔会超时或报错,加上重试机制更稳定:

import time
def call_with_retry(prompt: str, max_retries: int = 3, **kwargs) -> str:    """带重试的API调用"""    for attempt in range(max_retries):        try:            return call_deepseek(prompt, **kwargs)        except Exception as e:            if attempt < max_retries - 1:                wait = 2 ** attempt  # 指数退避:1s, 2s, 4s                print(f"第{attempt+1}次失败,{wait}秒后重试: {e}")                time.sleep(wait)            else:                raise

五、成本控制建议

DeepSeek API定价极低,但量大时仍需注意成本。

5.1 省钱技巧

  • Prompt精简:去掉无关上下文,每减少100字输入≈省0.0001元

  • 批量处理:10封邮件一次调用 vs 10次调用,token消耗差3-5倍

  • 缓存结果:相同/相似输入不要重复调用,用本地缓存

  • 分级处理:简单分类用 chat 模型,只有复杂推理才上 reasoner

  • 监控用量:在DeepSeek控制台设置用量告警阈值


实际成本估算: 每天处理20封邮件 + 生成1份日报,月成本约 ¥1-3,几乎可以忽略。


六、扩展思路

掌握基础模式后,还可以拓展到更多场景:

  • 会议纪要整理:录音转文字 → AI提取要点和待办事项

  • 代码Review辅助:提交diff给AI,获取改进建议

  • 文档翻译:技术文档中英互译,保留代码块格式

  • 数据报表解读:把CSV数据喂给AI,自动生成分析摘要

  • 核心模式都是一样的:结构化输入 → Prompt模板 → 结构化输出。


总结

本文用两个完整案例展示了如何用Python + DeepSeek API搭建自动化工作流:

  • 日报生成:零散记录 → 结构化日报,含分类和明日计划

  • 邮件分类:批量处理 → 分类+优先级+回复建议


关键技术点:

  • 统一的API调用封装,支持JSON模式和流式输出

  • 批量处理比逐条调用效率高3-5倍

  • 合理设置temperature和max_tokens平衡质量与成本

  • 重试机制保障稳定性

完整代码已经可以直接运行,建议先在测试环境验证效果,再根据实际需求调整Prompt模板。

机器学习算法AI大数据技术

 搜索公众号添加: datanlp

图片

长按图片,识别二维码


阅读过本文的人还看了以下文章:


YOLO实时定位,Qwen3-VL-Seg深度诊断,两者协同完成从"看见"到"看懂"再到"审断"的AI质检全链路
GPT-4o做大脑,Qwen2-VL做眼睛,让无人机+无人船自动巡检港口
NVIDIA开源LocateAnything深度解读:3B参数,比Qwen3-VL快10倍,最强3B视觉定位大模型来了
本地部署AI Agent,6G显存跑Qwen3.6-35B-A3B 从入门到实战全流程
TexMS-YOLO:纹理感知特征融合 + 多尺度交互实现工业缺陷检测91.99% mAP
汇集所有大模型架构图!大模型架构演进全解析
98%准确率!这个双分支AI模型,精准识别木薯叶病害(附代码)
2026论文解读,ASAHI:自适应切片助力小目标检测,速度提升25%、精度创新高
TexMS-YOLO:纹理感知特征融合 + 多尺度交互实现工业缺陷检测91.99% mAP
14.7M参数,小目标AP达到13.9%!FSDETR用频空融合重新定义目标检测
skill刚开源就斩获 1.7K Star!web-access让AI真正"上网"
Qwen3.5实战教程:从0到1掌握本地部署与微调
引入小目标注意力模块改进YOLO12用于无人机视角下的岸边人员玩水检测
pdf2skill:让计算机视觉初学者把PDF文档变成AI技能包
next-ai-draw-io 用这款AI 画图几十秒就搞定了
10 万文档 RAG 落地实战:从 Demo 到生产,我踩过的所有坑
最强一键抠图19Kstar 的 Rembg 开源神器
YOLO12改进引入DINOv3少样本目标检测精度飙升,分享训练自定义数据集代码
基于DINOv2和SAM2改进的U-Net模型
Ultralytics & lightly-train:简化计算机视觉模型训练,无需标签
最新视觉大模型 DINOv3论文精读(逐段解析)
医学影像数据集汇总(持续更新)150个
【医学影像分割】UN-SAM:一种高效且通用的细胞核分割模型
小目标检测难点分析和解决策略

【模型高效部署】tensorrtx 深度解读,yolov11高性能推理实战案例

实时语义分割ENet算法,提取书本/票据边缘


整理开源的中文大语言模型,以规模较小、可私有化部署、训练成本较低的模型为主


《大语言模型》PDF下载


动手学深度学习-(李沐)PyTorch版本


基于40万表格数据集TableBank,用MaskRCNN做表格检测


《基于深度学习的自然语言处理》中/英PDF


Deep Learning 中文版初版-周志华团队


【全套视频课】最全的目标检测算法系列讲解,通俗易懂!


《深度学习入门:基于Python的理论与实现》高清中文PDF+源码


python就业班学习视频,从入门到实战项目


2019最新《PyTorch自然语言处理》英、中文版PDF+源码


《21个项目玩转深度学习:基于TensorFlow的实践详解》完整版PDF+附书代码


《深度学习之pytorch》pdf+附书源码


《Python数据分析与挖掘实战》PDF+完整源码



不断更新资源

深度学习、机器学习、数据分析、python

 搜索公众号添加: datayx  

图片

【声明】内容源于网络
0
0
机器学习AI算法工程
计算机视觉、自然语言处理、推荐系统、人工智能、大模型、深度学习、机器学习、大数据技术社区,分享各类算法原理与源码、数据处理、可视化、爬虫、竞赛开源代码等资源。
内容 1574
粉丝 1
机器学习AI算法工程 计算机视觉、自然语言处理、推荐系统、人工智能、大模型、深度学习、机器学习、大数据技术社区,分享各类算法原理与源码、数据处理、可视化、爬虫、竞赛开源代码等资源。
总阅读44.1k
粉丝1
内容1.6k