
EthanYoQ/Invoice-Downloader
Invoice-Downloader
Invoice-Downloader is a community DeepSeek Harness plugin. Read the repository README before installing.
Install
npx @deepseek-ai/dsh plugin --profile web add @ethanyoq/dsh-invoice-downloaderRestart `dsh web` after install. Bundle APIs can change during the developer preview.
README badge
[](https://dshhub.dev/plugins/invoice-downloader)Paste this into your README. The star count updates with every catalog sync.
From the README
Excerpt from EthanYoQ/Invoice-Downloader, cleaned of badges and images.
InvoiceFlowAI — 电子发票整理与报销准备工具
English | 中文
把邮箱中的 PDF、OFD、XML 电子发票和部分发票下载链接,整理成分类文件与 Excel 报销汇总。
面向每月需要手工收集多张电子发票的个人、自由职业者和小团队。连接自己的 QQ 或 163 邮箱后,可批量收集发票、OCR 识别、分类归档并生成汇总;低置信度结果保留给用户人工检查。
下载:最新 Windows(安装版 / 免安装版)与 macOS(Apple Silicon)安装包
邮件和发票文件在本地处理。启用 GLM OCR / 视觉识别时,发票图片会发送到你配置的模型服务商用于提取。
DeepSeek Harness 插件
@ethanyoq/dsh-invoice-downloader 将本地 IMAP 发票下载、OCR、归档和 Excel 汇总带到 DeepSeek Harness 的右侧边栏。适用于希望把重复整理工作交给本地自动化、同时保留人工复核的报销场景。
dsh plugin --profile web add @ethanyoq/dsh-invoice-downloader
dsh web --profile web
打开右侧的“发票下载”入口,选择保存位置,安装一次本地引擎后填写 QQ 或 163 邮箱的 IMAP 授权码。首次安装需要联网下载 Python 依赖和 Chromium;rapidocr-onnxruntime 的 pip wheel 自带默认 PP-OCRv3 模型,无需额外手动下载模型。发票文件在本地 OCR;OCR 文本发送给当前选择的 DeepSeek 模型提取字段。插件支持 Windows x64 和 macOS Apple Silicon,授权码由 DSH 凭据服务保存,不写入插件设置或扫描日志。
✨ 核心亮点
| 特性 | 说明 | |
|---|---|---|
| 🔒 | 一键运行,开箱即用 | 解压即可运行,无需安装 Python 或任何依赖 |
| 🤖 | 双引擎 AI 识别 | Track A(OCR精确流)+ Track B(视觉降级流),自动切换,无需手动操作 |
| 🔍 | 四层智能漏斗 | 白名单域名 → 主题关键字 → 正文检测 → 二维码扫描,精准过滤非发票邮件 |
| 📄 | 链接发票自动恢复 | Playwright 自动打开百望云、税务平台链接,下载正式 PDF 存档 |
| 🧾 | 发票与凭证自动撮合 | 住宿发票/水单、打车发票/行程单自动配对并相邻命名归档 |
| 🪟 | 安静的后台处理 | URL 恢复 worker、Node 与 Chromium 全链路隐藏运行,不再批量弹出控制台窗口 |
| 🗂️ | 自然语言分类规则 | 支持"滴滴大于100元放进大额"这样的自定义规则 |
| 📊 | 一键 Excel 报表 | 自动生成 summary_report.xlsx,发票清单、金额汇总全覆盖 |
🏗️ 整体工作流程
flowchart LR
A["📧 QQ / 163\n邮箱 IMAP"] --> B["📥 邮件抓取\nEmailFetcher"]
B --> C{"🔍 四层\n智能漏斗"}
C -->|"通过"| D["📎 附件提取\nZIP 递归解包"]
C -->|"丢弃"| X["🗑️ 非发票邮件"]
D --> E{"附件类型?"}
E -->|"PDF/OFD/XML"| F["🤖 AI 提取引擎"]
E -->|"URL 链接"| G["🌐 PDF 恢复\nPlaywright"]
G --> F
F --> H{"提取\n成功?"}
H -->|"✅"| I["📂 智能分类\n规则重命名"]
H -->|"❌"| J["📁 Manual_Check"]
I --> K["🗂️ 本地归档"]
K --> L["📊 Excel 报表"]
🤖 双引擎 AI 提取架构
系统采用 Track A + Track B + Local Fallback 三层防线,任何一层成功即采用结果,确保极高的识别成功率。
为什么这样设计?
- Track A(OCR + LLM):精度最高,先提取文字结构再理解
- Track B(glm-4.5V 视觉):直接"看图",适合复杂排版或图片类发票
- Local Fallback:本地正则规则,断网可用,零 API 消耗
🔍 四层智能筛选漏斗
系统不会对每封邮件都调用 AI,而是先经过四层漏斗精准判断,大幅降低误识别率和 API 费用。
筛选通过后,附件还会经过 三级决策:
| 层级 | 触发条件 | 处理方式 |
|---|---|---|
| 🗑️ A 层(丢弃) | Tracking pixel、Logo、装饰图(≤32px) | 直接跳过 |
| 📦 B 层(暂存) | 附件 >5MB、ZIP 解包失败 | 保留但不处理 |
| ✅ C 层(归档) | 正常 PDF/OFD/XML | 进入 AI 提取流程 |
🌐 三级 PDF 恢复方案
许多发票邮件只有"点击下载"的链接,系统自动识别平台并选择最优方案:
flowchart TD
Link(["🔗 邮件中的发票链接"]) --> Detect{"识别链接平台"}
Detect -->|"百望云"| BW["🏢 Playwright 自动化\n登录 → 点击下载 → 捕获文件\n字段匹配验证"]
Detect -->|"国税·诺诺·航信"| DI["📥 HTTP 直接下载\n识别发票族群\n本地字段校验"]
Detect -->|"未知网页"| Generic["🌐 网页转 PDF\n检测登录/验证码\nA4 格式渲染"]
BW & DI & Generic --> Final(["📄 本地 PDF"])
Final --> AI(["🤖 AI 提取流程"])
⚙️ 配置指南
首次使用只需配置一次,之后每次扫描直接点击运行。
第一步 · 开启 163 邮箱 IMAP
📖 点击展开 163 邮箱详细步骤
服务器参数
| 参数 | 值 |
|---|---|
| IMAP 服务器 | imap.163.com |
| 端口 | 993(SSL/TLS) |
开启步骤
- 登录 mail.163.com,点击右上角「设置」
- 在下拉菜单中选择「POP3/SMTP/IMAP」
- 找到「IMAP/SMTP 服务」,点击右侧「开启」按钮
- 弹出「账号安全验证」窗口:
- 扫码方式(推荐):手机扫描二维码,自动发送验证短信
- 手动方式:按提示手动发送短信到指定号码
- 短信发送后点击「我已发送」
- 系统生成 16 位授权码(字母组合,仅显示一次,务必立即复制保存)
⚠️ 授权码不是邮箱登录密码,是专用于第三方客户端的独立密码,大小写敏感。
第二步 · 开启 QQ 邮箱 IMAP
📖 点击展开 QQ 邮箱详细步骤
…


