news 2026/9/28 7:59:02

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

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Python + DeepSeek API:3小时搭建一个AI自动化工作流(含完整代码)

\n\n# Python + DeepSeek API:3小时搭建一个AI自动化工作流(含完整代码)

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

前言:为什么要用AI自动化工作流?

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

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

本文你将学到:

  • DeepSeek API的基础调用方法
  • 两个实战场景:自动生成工作日报 + 邮件智能分类
  • 性能优化技巧和成本控制策略
  • 完整可运行的代码示例

一、环境准备

1.1 安装依赖

pipinstallopenai 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调用函数,后续所有场景都复用:

importosimportjsonfromopenaiimportOpenAIfromdotenvimportload_dotenv load_dotenv()client=OpenAI(api_key=os.getenv("DEEPSEEK_API_KEY"),base_url=os.getenv("DEEPSEEK_BASE_URL","https://api.deepseek.com"),)defcall_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,}ifjson_mode:kwargs["response_format"]={"type":"json_object"}response=client.chat.completions.create(**kwargs)returnresponse.choices[0].message.content

几个设计要点:

  • temperature=0.3:自动化场景需要稳定输出,调低随机性
  • json_mode:需要结构化输出时开启,DeepSeek支持JSON格式响应
  • system_prompt可自定义,不同场景传入不同的角色设定

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

2.1 需求分析

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

2.2 完整实现

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

defclassify_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"]}fori,einenumerate(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,# 分类任务需要确定性输出)returnjson.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)forrinresults:print(f"[{r['priority']}优先级]{r['category']}")print(f"{r['summary']}")print(f" 需回复:{'是'ifr['action_required']else'否'}")print()

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

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

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

四、性能优化技巧

4.1 批量处理而非逐条调用

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

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

4.2 流式输出提升体验

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

defcall_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,)forchunkinstream:ifchunk.choices[0].delta.content:yieldchunk.choices[0].delta.content# 使用fortextincall_deepseek_stream("帮我写一封感谢信"):print(text,end="",flush=True)

4.3 合理设置 max_tokens

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

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

4.4 错误重试机制

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

importtimedefcall_with_retry(prompt:str,max_retries:int=3,**kwargs)->str:"""带重试的API调用"""forattemptinrange(max_retries):try:returncall_deepseek(prompt,**kwargs)exceptExceptionase:ifattempt<max_retries-1:wait=2**attempt# 指数退避:1s, 2s, 4sprint(f"第{attempt+1}次失败,{wait}秒后重试:{e}")time.sleep(wait)else:raise

五、成本控制建议

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

5.1 定价参考(2026年5月)

模型输入输出适用场景
deepseek-chat¥0.001/千token¥0.002/千token日常文本任务
deepseek-reasoner¥0.004/千token¥0.008/千token复杂推理任务

定价可能变动,以官网为准。

5.2 省钱技巧

  1. Prompt精简:去掉无关上下文,每减少100字输入≈省0.0001元
  2. 批量处理:10封邮件一次调用 vs 10次调用,token消耗差3-5倍
  3. 缓存结果:相同/相似输入不要重复调用,用本地缓存
  4. 分级处理:简单分类用 chat 模型,只有复杂推理才上 reasoner
  5. 监控用量:在DeepSeek控制台设置用量告警阈值

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


六、扩展思路

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

  • 会议纪要整理:录音转文字 → AI提取要点和待办事项
  • 代码Review辅助:提交diff给AI,获取改进建议
  • 文档翻译:技术文档中英互译,保留代码块格式
  • 数据报表解读:把CSV数据喂给AI,自动生成分析摘要

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


总结

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

  1. 日报生成:零散记录 → 结构化日报,含分类和明日计划
  2. 邮件分类:批量处理 → 分类+优先级+回复建议

关键技术点:

  • 统一的API调用封装,支持JSON模式和流式输出
  • 批量处理比逐条调用效率高3-5倍
  • 合理设置temperature和max_tokens平衡质量与成本
  • 重试机制保障稳定性

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


声明:本文由AI辅助创作,经人工审核修改。文中代码均经过实际测试验证。API定价信息来源于DeepSeek官网公开数据,实际价格请以官网为准,本文不构成任何购买建议。

如果觉得有帮助,欢迎点赞收藏!评论区告诉我你还想用AI自动化哪些工作场景,下期继续实战 👇


专栏预告:下一篇将介绍如何把这些自动化任务组合成完整的CI/CD流程,敬请关注。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/28 7:58:44

5个实战案例揭秘:网站建设宣传图片怎么配才不卡

5个实战案例揭秘:网站建设宣传图片怎么配才不卡 域名服务器搞不懂?别慌。很多站长朋友一听到“服务器配置”、“SSL证书”这些词就头大,觉得那是程序员的事。但现实很残酷,图片加载慢,直接导致跳出率飙升,SEO权重掉得比脸还快。我见过太多 实战案例…

作者头像 李华
网站建设 2026/9/28 7:58:31

用element做的网站如何引流?保姆级建站教程含SEO实操

用element做的网站如何引流?保姆级建站教程含SEO实操 很多老板手里拿着Element UI的组件库,看着那些漂亮的卡片、表单和表格,心里直痒痒:这不就是我要的企业官网吗?不用懂深奥的后端架构,前端拼一拼,是不是就能上线? 别天真了。 用Element做的网站,如果只是静态展示,那确实快,但…

作者头像 李华
网站建设 2026/9/28 7:58:25

2026年大模型横评:DeepSeek V4 vs GPT-5.5 vs Kimi K2.6实测对比

本文使用AI辅助创作&#xff0c;测试数据基于作者2026年5月实际API调用测试&#xff0c;不同环境可能导致结果差异。测试代码和数据集已开源至GitHub&#xff08;文末附链接&#xff09;。\n\n## 前言 DeepSeek V4发布一周了&#xff0c;各种测评满天飞&#xff0c;但大多数要么…

作者头像 李华
网站建设 2026/9/28 7:58:06

避开外贸论坛买家信息网坑,图解步骤拆解建站成本

避开外贸论坛买家信息网坑,图解步骤拆解建站成本 找建站公司最怕什么?就是报价单上写着几千块,最后结账时变成几万块。很多做外贸的朋友在“外贸论坛买家信息网”里搜资源,结果被一堆中介忽悠,要么网站打不开,要么SEO优化根本没效果,钱花了却啥也没落着。别急,今天这篇图解步骤,我就把建站里的猫腻全扒开,告诉…

作者头像 李华