
你的一天是不是也这样被“切碎”?早上,花20分钟在几十封邮件里找重要通知;下午,花半小时手动把几个文档合并、总结;临下班,还要惦记着给几个平台同步发内容。这些琐事加起来,每天偷走你1-2小时,却毫无成就感。
ChatGPT很好用,但每次都要打开网页、描述上下文、等它生成,对于一些固定流程的任务,效率并不极致。直到上个月,我决定不再忍受——我要造一个专属的、能自动执行这些任务的“数字员工”。
用Python和一些开源库,我搭建了一个7x24小时待命的私人AI助手。现在,它每天帮我自动处理邮件、整理文档、生成日报,甚至监控信息,硬生生从碎片时间里“抠”出了每天近1小时。
核心思想:与其重复劳动,不如写个Agent,让它替你劳动。
往期阅读>>>
Python 自动化管理Jenkins的15个实用脚本,提升效率
App2Docker:如何无需编写Dockerfile也可以创建容器镜像
Python 自动化识别Nginx配置并导出为excel文件,提升Nginx管理效率
痛点: 每天早上一打开邮箱,几十封未读邮件扑面而来。工作邮件、订阅通知、垃圾推广混在一起,手动筛选、阅读、标记,至少20分钟就没了。
AI助手方案:我用 imaplib 读取邮件,结合大模型API(如DeepSeek、Kimi),写了一个自动邮件处理Agent。
import imaplibimport emailfrom openai import OpenAI # 以OpenAI为例,实际可用国内APIimport jsonclient = OpenAI(api_key="你的API密钥")def process_unread_emails(): # 1. 连接邮箱 mail = imaplib.IMAP4_SSL('imap.qq.com') mail.login('你的邮箱', '你的授权码') mail.select('inbox') # 2. 获取未读邮件 status, messages = mail.search(None, 'UNSEEN') email_ids = messages[0].split() for e_id in email_ids: # 3. 获取邮件内容 status, msg_data = mail.fetch(e_id, '(RFC822)') email_body = msg_data[0][1] email_message = email.message_from_bytes(email_body) sender = email_message['From'] subject = email_message['Subject'] # 提取正文(简化处理) body = "" if email_message.is_multipart(): for part in email_message.walk(): if part.get_content_type() == "text/plain": body = part.get_payload(decode=True).decode() break else: body = email_message.get_payload(decode=True).decode() # 4. 调用大模型分析邮件 prompt = f""" 你是一个邮件助理。请分析以下邮件,并严格按JSON格式返回: 1. 分类:['紧急工作', '一般工作', '通知订阅', '垃圾推广'] 2. 核心内容摘要(不超过50字) 3. 是否需要我行动(是/否),如果需要,提取具体待办事项。 邮件发件人:{sender} 邮件主题:{subject} 邮件正文:{body} """ try: response = client.chat.completions.create( model="gpt-4o-mini", # 可根据成本选择模型 messages=[{"role": "user", "content": prompt}], response_format={ "type": "json_object" } ) analysis = json.loads(response.choices[0].message.content) # 5. 根据分类执行操作 category = analysis.get('分类') summary = analysis.get('核心内容摘要') todo = analysis.get('待办事项') if category == '紧急工作': print(f"[紧急] {subject} - {summary}") # 可以自动转发到飞书/钉钉,或添加到待办列表 add_to_todo_list(subject, todo) elif category == '一般工作': print(f"[一般] {subject} - {summary}") # 标记为稍后处理 mail.store(e_id, '+FLAGS', '\\Flagged') elif category == '垃圾推广': # 自动移动到垃圾箱或删除 mail.store(e_id, '+FLAGS', '\\Deleted') print(f"已删除垃圾邮件:{subject}") except Exception as e: print(f"处理邮件出错:{e}") mail.expunge() mail.logout()# 用系统定时任务(crontab)或 schedule 库,每30分钟运行一次
效果: 现在,我每天早上打开电脑,已经有一份由AI整理好的《邮件速览》等着我,紧急事项已加入待办,垃圾邮件自动清理。每天省时:约25分钟。
痛点: 每周都要从不同渠道(钉钉文档、Confluence、本地Word)收集项目进展,手动复制粘贴,整理成一份周报,耗时又无聊。
AI助手方案:我用 python-docx 或直接读Markdown,结合大模型的总结能力,写了一个文档处理Agent。
import osfrom openai import OpenAIimport markdown # 用于处理md文件client = OpenAI(api_key="你的API密钥")def auto_summarize_documents(folder_path): all_content = "" # 1. 遍历文件夹,读取所有文本文件 for filename in os.listdir(folder_path): if filename.endswith('.md') or filename.endswith('.txt'): filepath = os.path.join(folder_path, filename) with open(filepath, 'r', encoding='utf-8') as f: content = f.read() all_content += f"\n--- 文档:{filename} ---\n{content}\n" # 可以扩展支持 .docx, .pdf 等 if not all_content: print("文件夹内没有文本文件。") return # 2. 调用大模型进行总结 prompt = f""" 你是一个专业的项目助理。以下是本周多个渠道的零散项目更新内容。 请帮我: 1. 提取所有项目的关键进展和里程碑。 2. 识别出存在的风险或阻塞点。 3. 生成一份结构清晰的【本周项目进展汇总】,包含:项目名称、本周完成、下周计划、风险提示。 请直接输出汇总报告,不要额外解释。 原始内容: {all_content[:15000]} # 防止超出token限制 """ try: response = client.chat.completions.create( model="gpt-4o-mini", messages=[{"role": "user", "content": prompt}], temperature=0.2 # 降低随机性,让总结更稳定 ) summary = response.choices[0].message.content # 3. 保存总结报告 with open('本周项目进展汇总.md', 'w', encoding='utf-8') as f: f.write(summary) print("本周项目进展汇总已生成!") return summary except Exception as e: print(f"总结文档时出错:{e}")# 可以设定每周五下午5点自动运行
效果: 周五下午,脚本自动运行,将我散落在各处的文档“吸”到一起,生成一份条理清晰的汇总报告。我只需要花5分钟润色即可。每周省时:约1.5小时(平摊到每天约15分钟)。
痛点: 需要关注竞品动态、行业新闻或特定关键词,手动刷网页效率低,还容易错过。
AI助手方案:我用 requests 和 BeautifulSoup 抓取网页,或用RSS,结合大模型判断相关性并生成简报。
import requestsfrom bs4 import BeautifulSoupfrom openai import OpenAIimport timeclient = OpenAI(api_key="你的API密钥")KEYWORDS = ['你的公司名', '竞品A', '行业关键词']def monitor_news(urls): news_items = [] for url in urls: try: resp = requests.get(url, timeout=10) soup = BeautifulSoup(resp.text, 'html.parser') # 假设新闻标题在 <h2 class='news-title'> 里,需根据实际网站调整 titles = soup.find_all('h2', class_='news-title') for title_tag in titles[:5]: # 只看最新5条 title = title_tag.get_text().strip() link = title_tag.find('a')['href'] if title_tag.find('a') else url # 简单关键词过滤 if any(keyword.lower() in title.lower() for keyword in KEYWORDS): news_items.append({'title': title, 'link': link}) except Exception as e: print(f"抓取 {url} 失败:{e}") if news_items: # 让AI判断重要性并生成简报 prompt = f""" 以下是今天抓取到的可能与公司相关的新闻标题。 请判断每条新闻的相关性和潜在影响(高/中/低),并生成一份不超过200字的监控简报。 新闻列表: {str(news_items)} """ try: response = client.chat.completions.create( model="gpt-4o-mini", messages=[{"role": "user", "content": prompt}] ) briefing = response.choices[0].message.content # 发送到企业微信/钉钉/webhook send_notification(f"📰 每日信息简报\n{briefing}") print("监控简报已发送。") except Exception as e: print(f"生成简报出错:{e}") else: print("今日未发现相关新闻。")# 设定每天上午10点运行
效果: 我不用再主动搜索,每天上午会自动收到一份简洁的监控简报,告诉我外界发生了什么与我相关的事。每天省时:约15分钟(从主动搜寻变为被动接收)。
如果你也心动了,但担心技术门槛,我的路径也许能帮你:
先选一个最痛的场景:别想着一口吃成胖子。从邮件分类或文档总结这种输入输出明确的任务开始,成功一次,信心就来了。
善用“胶水”库和API:你不需要从头造轮子。
处理本地文件:用 os, shutil, python-docx, pandas。
处理网络:用 requests, BeautifulSoup, selenium(对付复杂网页)。
调用AI大脑:注册一个国内大模型平台(如DeepSeek、Kimi、通义千问),获取API Key,用它们的官方Python SDK或 openai 库(改个base_url)即可调用。
学会让脚本“自启动”:写好脚本不是终点。在Mac/Linux上用 crontab,在Windows上用“任务计划程序”,或者用Python的 schedule 库,让你的助手在后台定时运行。
从“半自动”到“全自动”:一开始可以设计成“AI分析,我确认”,比如邮件分类后你检查一下再让AI执行移动。运行稳定后,再逐步放开权限,实现全自动。
安全第一:API密钥、邮箱密码等敏感信息,千万不要硬编码在脚本里!用环境变量(.env文件+python-dotenv库)或系统密钥环来管理。
上面的脚本还是“脚本”,每个功能是独立的。如果你想打造一个能理解复杂指令、自主规划步骤、调用不同工具的真正Agent,可以上 LangChain 或 Semantic Kernel 这类框架。
例如,你可以用LangChain定义一个Agent,它拥有多个“工具”(Tool):读取邮件工具、总结文档工具、搜索网页工具。当你对它说:“帮我看看今天有没有重要邮件,然后总结一下上周的项目文档”,它会自己规划:先调用邮件工具,再调用文档工具,最后把结果组织好给你。
https://ima.qq.com/wiki/?shareId=f2628818f0874da17b71ffa0e5e8408114e7dbad46f1745bbd1cc1365277631c
