【AI实战第1篇】用Python+DeepSeek API搭建一个能帮你写周报的AI助手(附完整源码)
前言每周五下午的噩梦兄弟们谁懂啊每到周五下午领导一句周报交了吗直接让我血压拉满 明明一周干了不少活但一打开Word就脑子空白写出来的东西跟流水账似的。更离谱的是有时候写了两小时周报比干活还累。直到有一天我突发奇想为什么不让AI帮我写周报于是我花了一个晚上用Python DeepSeek API搞了一个AI周报助手现在每周五只需要把工作要点丢给它30秒就能生成一份专业的周报。同事看了直呼你tm是怎么写出这种周报的真香.jpg今天就手把手教你搞一个学完这篇你也能拥有同款摸鱼神器。一、准备工作3分钟搞定环境1.1 获取DeepSeek API Key先去 DeepSeek 开放平台注册个账号拿到API Key。新用户有免费额度够你玩一阵子了。注意API Key就像你家钥匙千万别提交到GitHub上去不然你的额度就变成全世界的了别问我怎么知道的。1.2 安装依赖pip install openai python-dotenv没错DeepSeek的API和OpenAI是兼容的直接用openai库就行这波属于白嫖人家的轮子了。1.3 项目结构weekly-report-ai/ ├── .env # 存API Key ├── report_bot.py # 主程序 └── templates/ # 周报模板后面会用到 └── default.txt二、核心代码让AI帮你写周报2.1 基础版10行代码搞定先来个最简单的版本感受一下AI的威力from openai import OpenAI import os from dotenv import load_dotenv load_dotenv() client OpenAI( api_keyos.getenv(DEEPSEEK_API_KEY), base_urlhttps://api.deepseek.com ) def generate_report(work_items: list) - str: 根据工作要点生成周报 items_text \n.join([f- {item} for item in work_items]) response client.chat.completions.create( modeldeepseek-chat, messages[ { role: system, content: 你是一个专业的周报撰写助手。请根据用户提供的工作要点 生成一份结构清晰、语言专业的工作周报。要求 1. 分为本周工作总结和下周工作计划两部分 2. 每条工作描述要具体、量化 3. 语气正式但不死板 4. 适当添加工作成果和数据 }, { role: user, content: f请根据以下工作要点生成周报\n{items_text} } ], temperature0.7, max_tokens2000 ) return response.choices[0].message.content # 使用示例 if __name__ __main__: my_work [ 修了3个前端bug, 写了用户模块的接口文档, 参加了需求评审会, 优化了数据库查询速度快了2倍 ] report generate_report(my_work) print(report)运行一下你会发现AI生成的周报比你自己写的还像那么回事儿。修了3个bug会被它润色成完成前端模块3个关键缺陷的排查与修复涉及用户交互体验优化。领导看了直点头你看了直摇头——这tm是我写的三、进阶版加上模板和历史记录3.1 支持自定义模板不同公司周报格式不一样有的要写OKR有的要写KPI有的领导就喜欢看表格。所以我们加个模板功能class ReportBot: def __init__(self, template_pathNone): load_dotenv() self.client OpenAI( api_keyos.getenv(DEEPSEEK_API_KEY), base_urlhttps://api.deepseek.com ) self.template self._load_template(template_path) self.history [] def _load_template(self, path): if path and os.path.exists(path): with open(path, r, encodingutf-8) as f: return f.read() return 标准周报格式本周总结 下周计划 需要协助的事项 def generate(self, work_items: list, style正式) - str: items_text \n.join([f- {item} for item in work_items]) response self.client.chat.completions.create( modeldeepseek-chat, messages[ { role: system, content: f你是周报撰写助手。 模板要求{self.template} 写作风格{style} 请严格按照模板格式生成周报。 }, { role: user, content: f本周工作要点\n{items_text} } ], temperature0.7 ) result response.choices[0].message.content self.history.append({ items: work_items, report: result }) return result这个版本支持自定义模板和不同风格。你可以搞一个正式版应付领导再搞一个摸鱼版发到工作群里划水。四、实际效果展示输入这几条工作要点bot ReportBot() report bot.generate([ 完成了用户中心的登录注册模块重构, 处理了线上告警数据库连接池溢出, 和产品讨论了v2.0的需求方案, review了实习生的代码改了20多处 ])AI生成的周报节选本周工作总结1. 【系统重构】完成用户中心登录注册模块的架构重构优化了认证流程提升了代码可维护性和安全性。2. 【线上问题】及时响应并处理了数据库连接池溢出告警排查根因后优化连接池配置参数保障了系统稳定运行。3. 【需求规划】参与产品v2.0版本需求评审就技术可行性和实现方案提供了建议。4. 【团队协作】完成实习生代码Review针对20余处代码规范及逻辑问题进行了指导和优化建议。看到没review了实习生代码被润色成了完成实习生代码Review针对20余处代码规范及逻辑问题进行了指导和优化建议。这水平主管看了都得给你打A。五、踩坑记录 小贴士坑1API返回太慢解决用stream流式输出边生成边显示用户体验直接起飞。这个我会在下一篇详细讲。坑2生成的内容太AI味解决在prompt里加一句用人话说别太官方或者调高temperature到0.8-0.9。坑3周报格式不统一解决用模板约束这就是为什么我们要加模板功能的原因。六、下一篇预告这篇只是开胃菜下一篇我们要搞个更炸裂的功能流式输出像ChatGPT一样一个字一个字蹦出来Web界面不用命令行浏览器里直接用多模板切换一键切换不同公司的周报格式周报历史自动保存再也不怕找不到上周写了啥想看的兄弟点个订阅不然下篇你可能就刷不到了。总结今天我们用大概50行核心代码就搞定了一个AI周报助手。虽然代码不多但这个项目麻雀虽小五脏俱全涉及到了DeepSeek API的基本调用Prompt Engineering提示词工程Python面向对象编程环境变量管理这些都是做AI应用开发的基础技能后面的项目都会用到。完整源码获取订阅本专栏后在评论区留言源码我会私发给你。后续我也会在CSDN资源区上传方便大家直接下载运行。如果这篇文章对你有帮助别忘了点赞收藏关注三连你的支持是我更新的最大动力下篇见