Skip to content

Latest commit

 

History

3 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

💌 Love Letter Agent - 情书自动生成 & 批量恶搞发送

Python CrewAI License Stars
GitHub 仓库 · 快速开始 · 批量恶搞 · 常见问题

🚀 AI 自动写情书,批量发送到好友邮箱,把"社死"进行到底!
基于 CrewAI 多智能体框架:作家 Agent 创作 → 编辑 Agent 润色 → 寄信人 Agent 一键投递
好友的邮箱,就是你的表白现场 💘


✨ 功能特性

功能 说明
🤖 三 Agent 流水线 浪漫作家 → 资深编辑 → 邮件投递员,协作完成全流程
✍️ 情书自动生成 输入一句话请求,自动生成 300-500 字真情实感情书
🧹 自动润色 编辑 Agent 修正语法、优化表达,署名自然不"出戏"
📁 本地存档 每封情书自动保存为 output/love_letter_时间戳.txt
📧 SMTP 一键发送 通过 163 邮箱 SSL 加密发送,无需额外邮件库
⚡ 批量恶搞 run_concurrent.py 支持多任务并发,一次恶搞一群好友
🎭 匿名防追踪 纯邮箱地址发件,不暴露真实姓名

📬 效果预览(AI 生成样例)

给我的爱人:

提笔时,窗外夜色正温柔……是你让我明白,最深沉的爱意,原来可以如此安静。它不喧哗,不索取,只是安然存在于那里——像大地承托万物,像星辰点亮长夜……

永远属于你的人


🚀 快速开始

1. 安装依赖(Python ≥ 3.10)

pip install -r requirements.txt

2. 配置环境变量

cp .env.example .env

编辑 .env 填入配置:

# LLM API(支持任意 OpenAI 兼容接口,默认小米 MIMO)
OPENAI_API_KEY=你的_API_密钥
OPENAI_API_BASE=https://api.openai.com/v1
OPENAI_MODEL_NAME=mimo-v2.5-pro

# 163 邮箱 SMTP(需要开启 SMTP 服务并获取授权码)
SENDER_EMAIL=你的邮箱@163.com
SENDER_PASSWORD=你的163授权码

# 收件人邮箱
RECEIVER_EMAIL=好基友的邮箱@example.com

📌 163 授权码获取:登录 163 邮箱 → 设置 → POP3/SMTP/IMAP → 开启 SMTP 服务 → 按提示获取授权码(不是登录密码!)

3. 运行

python love_letter_agent.py

程序自动完成:创作 → 润色 → 保存 → 发送,收件人邮箱收到一封深情款款的情书 💘


⚡ 批量恶搞模式

对一群好友"雨露均沾"?用并发脚本一次搞定:

# 用法:python run_concurrent.py [任务总数] [并发数]

# 发 10 封,3 个并发
python run_concurrent.py 10 3

# 发 5 封,5 个并发(默认并发 = 总数)
python run_concurrent.py 5

每个任务会独立生成一封独一无二的情书(AI 每次创作内容都不同),全部发送到 .env 中配置的收件人邮箱。


🎨 自定义玩法

修改恶搞主题

编辑 love_letter_agent.py 末尾的 user_request

# 深情守护版(默认)
user_request = "帮我写一封深情的情书,表达对爱人默默守护的感激之情"

# 花式恶搞版
user_request = "以一只舔狗的口吻写一封卑微又好笑的情书"
user_request = "写一封霸道总裁风格的情书,命令对方爱上我"
user_request = "用文言文写一封含蓄的情书,但结尾突然破防"

修改发件主题

编辑 love_letter_agent.py 中的邮件主题:

msg["Subject"] = "一封来自心底的情书"  # 改成任何你想写的标题

更换收件人

  • 方式 1:修改 .env 中的 RECEIVER_EMAIL
  • 方式 2:直接调用函数指定收件人

🏗️ 系统架构

你的请求(一句话)
      ↓
┌────────────────────────────────────────────────┐
│              CrewAI 多智能体流水线               │
│                                                │
│  📝 浪漫情书作家  → 创作 300-500 字初稿          │
│       ↓                                        │
│  ✂️ 资深内容编辑  → 语法修正 + 情感润色          │
│       ↓                                        │
│  📨 邮件投递员    → 保存 txt + SMTP 发送         │
└────────────────────────────────────────────────┘
      ↓                        ↓
 output/*.txt           📧 好友邮箱收到情书
  本地存档                 (恶搞成功 🎉)
  • 框架CrewAIProcess.sequential 顺序执行)
  • LLM 网关:LiteLLM(支持 OpenAI / Anthropic / 小米 MIMO 等任意格式)
  • 邮件:Python 标准库 smtplib + email,SSL 连接 smtp.163.com:465

📁 目录结构

love_letter_agent/
├── love_letter_agent.py   # 主程序(三 Agent 情书流水线)
├── run_concurrent.py      # 并发批量发送脚本
├── requirements.txt       # 依赖清单
├── .env.example           # 环境变量模板(复制为 .env)
├── .env                   # 环境变量配置(⚠️ 已被 gitignore,勿提交)
└── output/                # 情书输出目录(自动创建,gitignore)
    └── love_letter_*.txt  # 生成的情书存档

🐛 常见问题

1. 提示 "请在 .env 文件中配置 OPENAI_API_KEY"

.env 未创建或未填写 API 密钥。先执行 cp .env.example .env 并填写。

2. 邮箱认证失败(SMTPAuthenticationError)

  • 检查 SENDER_PASSWORD 是否填的授权码而非登录密码
  • 确认已在 163 邮箱设置中开启 SMTP 服务

3. 无法连接 SMTP 服务器

  • 确认网络可访问 smtp.163.com:465
  • 某些网络环境会屏蔽 SMTP 端口,可尝试更换网络

4. 情书内容出现占位符(如 [你的名字])

概率极低(模型偶尔犯傻)。重新运行一次即可,或修改 Task 描述强化署名要求。


⚠️ 免责声明

  • 本项目仅用于学习和技术交流,请确保收件人为知情同意的朋友
  • 请勿用于骚扰、诈骗、恶意攻击等非法用途
  • 请遵守所在地区的法律法规及邮件服务商的使用条款
  • 滥用导致的任何后果由使用者自行承担

📄 License

MIT License


Made with 💘 + 🤖 for friends who deserve a little chaos

About

情书自动生成与批量发送系统:CrewAI 多智能体 + SMTP 批量投递,AI 一键写情书并发送

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages