DSH Hub
Invoice-Downloader cover

EthanYoQ/Invoice-Downloader

Invoice-Downloader

ToolVision132 GitHub stars· updated 2026-08-23

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-downloader

Restart `dsh web` after install. Bundle APIs can change during the developer preview.

README badge

Invoice-Downloader DSH Hub badge
[![DSH Hub](https://dshhub.dev/badge/invoice-downloader.svg)](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)

开启步骤

  1. 登录 mail.163.com,点击右上角「设置
  2. 在下拉菜单中选择「POP3/SMTP/IMAP
  3. 找到「IMAP/SMTP 服务」,点击右侧「开启」按钮
  4. 弹出「账号安全验证」窗口:
    • 扫码方式(推荐):手机扫描二维码,自动发送验证短信
    • 手动方式:按提示手动发送短信到指定号码
  5. 短信发送后点击「我已发送
  6. 系统生成 16 位授权码(字母组合,仅显示一次,务必立即复制保存

⚠️ 授权码不是邮箱登录密码,是专用于第三方客户端的独立密码,大小写敏感。

📚 163 邮箱官方帮助


第二步 · 开启 QQ 邮箱 IMAP

📖 点击展开 QQ 邮箱详细步骤

Related plugins