CouponAI:自动帮你提取邮箱里的隐藏优惠!

大家好,这里是架构资源栈!点击上方关注,添加“星标”,一起学习大厂前沿架构!

关注、发送C1即可获取JetBrains全家桶激活工具和码!

每次打开邮箱,是不是都会被一大堆促销邮件轰炸?Swiggy、Zomato、Uber、各种电商……看着眼熟,但大多数我们都懒得点开看。这些邮件里其实藏着不少实实在在的优惠,只不过我们经常错过

于是我做了一个小项目:CouponAI —— 它能自动帮你从邮箱中提取优惠信息,整理成一目了然的格式,再也不错过每一次省钱的机会!


🛠 我做了啥?

CouponAI 是一个服务器端应用,能自动识别并提取你邮箱中的促销邮件内容。

它是怎么做到的?借助 Postmark 的邮件解析功能 + 本地 LLM(大语言模型),能从邮件中提取以下这些内容:

  • 品牌名称(如 Zomato、Uber)
  • 优惠标题
  • 优惠详情
  • 过期时间(如果有)
  • 所属分类(吃饭、出行、购物等)

然后这些数据会被保存到 MongoDB 里,并通过一个前端界面展现给你,一个页面就能看完所有优惠信息,超方便!


🎬 项目演示

CouponAI 演示

你可以在本地完整跑起来,但由于使用了本地 LLM 模型,暂时没法上线云端服务。


🚀 本地运行指南

想亲自体验一下?按下面步骤来就行:

1. 克隆项目 & 安装依赖

git clone https://github.com/Utkarsh212/CouponAI.git
cd CouponAI
npm install

2. 安装并运行 Ollama(本地 LLM)

ollama run gemma3:4b

3. 配置环境变量 .env

PORT=5000
MODEL=gemma3:4b
HOSTED_MODEL_URL=http://127.0.0.1:11434/api/chat
DB_CONNECTION_URL=你的MongoDB连接串

4. 使用 Ngrok 暴露本地服务

ngrok http 5000

把生成的 ngrok 地址填到 Postmark 后台的 webhook 地址里。

5. 邮件转发测试

  • 把任意一封促销邮件转发到 Postmark 提供的邮箱地址
  • Postmark 会解析内容并转发给你本地服务

6. 查看解析结果

  • 打开 index.html,看到所有已解析的优惠信息
  • 或者直接访问 ngrok 提供的 URL,查看 JSON 格式的优惠数据

✉️ 示例效果

转发了一封这样的邮件:

原始邮件

LLM 输出的结果如下:

{
  "company": "Zomato",
  "offer": "Up to 50% off on your favourite treats",
  "details": "Just code ZOMATO while ordering online.",
  "expiry": null,
  "category": "Food"
}

是不是一下就清清楚楚了?


🧠 架构解析

整个流程其实很流畅:

  1. 用户转发促销邮件
  2. Postmark 接收到并解析邮件内容
  3. 调用 LLM 模型提取结构化信息
  4. 保存到 MongoDB
  5. 前端展示可用优惠

架构图


💻 技术栈

模块 技术
后端服务 Node.js + Express
本地 LLM gemma3:4b(Ollama 启动)
数据库 MongoDB
邮件解析服务 Postmark Inbound Email Stream
端口映射 Ngrok
其他工具 dotenv、axios 等

🧪 使用 Postmark 的体验

第一次用 Postmark 的邮件解析功能,整体体验非常顺滑。配置入站流、接 webhook、解析格式——每一步都非常清晰,而且默认解析出来的字段非常干净、好用


📦 开源地址

项目源码都在这里:
👉 https://github.com/Utkarsh212/CouponAI


🔚 小结

如果你也有“邮箱促销信息太多,根本找不到真正的优惠”的烦恼,不妨试试这个小工具 —— CouponAI,让每一封邮件都变成真正的“省钱提示”!


如果你对邮件解析、LLM 落地、Postmark 集成感兴趣,欢迎评论区交流!🌟
觉得有帮助也别忘了点个赞、点个在看哦~

转自:https://mp.weixin.qq.com/s/qyvie_RJ4_8JPjDkPmh3Bw

如果这篇文章对你有帮助的话,别忘了【在看】【点赞】支持下哦~

posted @ 2025-06-13 18:34  StriverD  阅读(10)  评论(0)    收藏  举报