当前位置:首页>python>我用 Python + AI 做了一个全自动办公助手,帮上班族告别重复劳动

我用 Python + AI 做了一个全自动办公助手,帮上班族告别重复劳动

  • 2026-10-11 08:07:57
我用 Python + AI 做了一个全自动办公助手,帮上班族告别重复劳动

前言

每天上班,你是不是也在重复这些事:

  • 打开 Excel,复制粘贴数据到另一个表
  • 手动算各种汇总、同比、环比
  • 写日报周报月报,翻来覆去就那几句话
  • 做完还要发到群里通知大家

一天下来,真正有价值的工作没干多少,时间全花在这些机械操作上了。

我就想:这些事情,能不能让 AI 全自动完成?

于是花了一天时间,做了一个「个人全自动办公助手 Agent」。把文件丢进去,它自动帮你读取、清洗、分析、生成报告,还能定时推送到钉钉和企业微信。

今天把整个过程分享出来。


这个工具能干什么

一句话概括:拖入文件 → 自动出报告 → 自动推送。

具体来说:

支持的文件格式:

  • Excel(.xlsx/.xls)
  • CSV
  • Word(.docx)
  • PDF
  • TXT
  • 图片(OCR 识别)

自动处理流程:

  1. 读取文件,提取结构化数据
  2. 清洗去重、自动分类、统计汇总
  3. 调用 AI 生成专业报告(带图表)
  4. 推送到钉钉/企业微信/邮件

内置 5 种报告模板:

  • 销售日报 — 销售额、订单量、客单价、热销排行
  • 考勤统计 — 出勤率、迟到早退、加班时长
  • 财务月报 — 收支分析、利润率、费用分类
  • 项目周报 — 任务进度、风险提示、团队负载
  • 运营数据 — UV/PV、转化率、留存、GMV

而且系统会根据你的数据列名自动匹配最合适的模板,不需要手动选。


为什么要做这个

背景

上班族每天花在整理数据和写报告上的时间,保守估计 1-2 小时。一个月就是 30-60 小时。

这些工作有几个特点:

  • 重复性高
    — 每天做的事情大同小异
  • 规则明确
    — 数据从哪来、怎么算、报告什么格式,都是固定的
  • 价值不高
    — 不需要创造力,纯粹是体力活

这恰恰是 AI Agent 最擅长的领域。

意义

对个人来说:

  • 每天省出 1-2 小时,去做真正需要思考的工作
  • 报告质量更稳定,不会因为赶时间而出错
  • 定时自动推送,再也不会忘记发日报

对团队来说:

  • 数据口径统一,不会出现"你算的和我算的不一样"
  • 报告格式标准化,管理层看着舒服
  • 历史报告自动归档,随时可追溯

技术架构

整体设计

用户上传文件 / 定时触发
│
▼
┌─────────────────┐
│解析 Agent     │读取 Excel/CSV/Word/PDF/TXT/图片
└────────┬────────┘
▼
┌─────────────────┐
│整理 Agent     │去重、清洗、分类、统计
└────────┬────────┘
▼
┌─────────────────┐
│报表 Agent     │  AI 生成报告 + 数据图表
└────────┬────────┘
▼
推送到钉钉/微信/邮件

三个 Agent 各司其职,通过 LangGraph 状态机串联。每个节点执行完会检查状态,出错则终止并报告错误原因。

技术栈选择

组件
选型
理由
语言
Python
数据处理生态最好
AI 引擎
DeepSeek API
便宜(生成一份报告约 ¥0.01-0.05)、中文能力强
工作流
LangGraph
状态机模式,流程清晰,易于扩展
数据处理
pandas
行业标准
可视化
matplotlib
稳定可靠
Web UI
Streamlit
一天搞定界面
定时任务
APScheduler
轻量级,够用
打包
PyInstaller
一键生成可执行文件

为什么用 DeepSeek 而不是 GPT-4

  1. 成本
    — DeepSeek 的价格是 GPT-4 的 1/50,日常使用月费不超过 ¥5
  2. 中文
    — 中文理解和生成能力不输 GPT-4
  3. 兼容
    — API 格式兼容 OpenAI SDK,一行代码切换
  4. 速度
    — 响应快,生成一份报告通常 3-5 秒

实现过程

第一步:文件解析

这是整个流程的入口。核心思路是:不管什么格式的文件,最终都转成统一的数据结构。

classParserAgent:
    SUPPORTED_EXTENSIONS = {
".xlsx", ".xls", ".csv",
".docx", ".doc", ".pdf", ".txt",
".png", ".jpg", ".jpeg",
    }

defparse(self, file_path: str) -> dict:
# 返回统一格式:
# {"file_name": str, "data": DataFrame 或 str, "metadata": dict}

表格类文件(Excel/CSV)返回 pandas DataFrame,文本类文件(Word/PDF/TXT)返回字符串。

CSV 解析有个小细节:自动尝试多种编码(utf-8/gbk/gb2312),因为国内很多导出的 CSV 是 GBK 编码。

第二步:数据清洗

拿到原始数据后,自动做以下处理:

  • 去除完全重复的行
  • 去除全空行
  • 列名去空白、统一转字符串
  • 字符串列去首尾空格
  • 尝试将"看起来像数字"的列转为数值类型
  • 生成统计摘要(行数、列数、数值统计、分类分布)

90% 的清洗工作用 pandas 规则完成,只有需要语义理解的分类才调用 AI,控制成本。

第三步:报告生成

这是最核心的部分。设计了一套模板系统:

@register_template
classSalesDailyTemplate(ReportTemplate):
    name = "销售日报"
    required_columns = ["销售额", "订单", "客户", "产品", "金额"]

defextract_metrics(self, df):
# 从数据中提取关键指标
return {"总销售额": ..., "订单量": ..., "客单价": ...}

defbuild_prompt(self, data_summary):
# 构建专业的 AI 提示词
return system_prompt, user_prompt

每个模板定义了:

  • 适用的数据特征(通过列名匹配)
  • 关键指标提取逻辑
  • 专业的 AI 提示词(让生成的报告更有针对性)

系统会根据上传数据的列名自动匹配最合适的模板。比如数据里有"销售额""订单"这些列,就自动用销售日报模板。

第四步:推送通知

支持三个渠道:

钉钉— 支持三种安全策略(自定义关键词/加签/IP白名单),发送时自动注入关键词、自动签名。

企业微信— 通过群机器人 Webhook 推送 Markdown 格式消息。

邮件— SMTP 发送,报告作为附件。

第五步:Web 界面

用 Streamlit 做了一个完整的 Web 界面:

  • 左侧边栏:配置 API Key、选择模板、设置推送
  • 主区域:拖拽上传文件 → 预览数据 → 一键生成报告
  • 配置指南:手把手教用户申请各种 Key 和 Webhook
  • 配置持久化:填过的配置自动保存,重启不丢失

打包成桌面应用

做完功能后,面临一个问题:目标用户是上班族,不会用命令行。必须做成双击就能用的桌面应用。

方案选择

用 PyInstaller 打包。它能把 Python 程序和所有依赖打包成独立的可执行文件,用户电脑上不需要安装 Python。

踩过的坑

坑 1:Streamlit + --windowed 模式秒退

一开始用--windowed参数打包(隐藏控制台窗口),结果双击后程序秒退。

原因:Streamlit 是 Web 服务,需要一个进程持续运行。--windowed模式下主进程启动后没有东西"hold 住",直接退出了。

解决:改用--console模式,保留终端窗口作为服务进程。用 subprocess 启动 Streamlit,主进程通过process.wait()保持存活。

坑 2:打包后找不到模块

PyInstaller 静态分析 import,但 Streamlit 和 LangGraph 有大量动态导入。

解决:手动声明--hidden-import,把所有可能用到的模块都列出来。

坑 3:包体积太大

第一次打包出来 925MB,主要是 pandas、matplotlib、streamlit 这些库太大。

解决:去掉--windowed(不生成 .app bundle)后降到 355MB。还可以进一步用 UPX 压缩。

最终打包流程

# 一键打包
python build_release.py

# 输出:
# macOS → ~/办公助手数据/output/办公助手.dmg
# Windows →生成 build_windows.bat,在 Windows 上执行即可

打包脚本自动完成:

  1. 检查依赖
  2. 清理旧构建
  3. PyInstaller 打包(含所有数据文件和隐式导入)
  4. 创建 DMG 安装包(macOS)
  5. 生成 Windows 打包批处理脚本

用户体验

最终用户的使用流程:

  1. 双击「办公助手」
  2. 首次运行弹出引导,提示配置 API Key
  3. 浏览器自动打开 Web 界面
  4. 拖入文件 → 选模板 → 点击生成
  5. 报告自动保存到~/办公助手数据/output/

成本分析

开发成本

  • 核心功能:1 天
  • Web UI:半天
  • 模板系统:半天
  • 打包调试:半天

运行成本

  • DeepSeek API:约 ¥5/月(日常使用)
  • 服务器:不需要(本地运行)
  • 其他:无

总结

这个项目的核心思路很简单:

把重复的、有规则的、不需要创造力的工作,交给 AI Agent 自动完成。

技术上没有什么高深的东西,就是把现有的工具组合起来:

  • pandas 处理数据
  • DeepSeek 生成文字
  • matplotlib 画图
  • LangGraph 编排流程
  • Streamlit 做界面
  • PyInstaller 打包

但组合在一起,就能实实在在地帮上班族每天省出 1-2 小时。

如果你也想做类似的 AI 工具,建议从最小可行产品开始:先做命令行版验证核心流程,再加界面,最后打包。不要一上来就想做得很完美,先跑起来再说。


项目完整代码已开源,有问题欢迎交流。

最新文章

随机文章