vas3k/TaxHacker

GitHub: vas3k/TaxHacker

自托管 AI 记账应用,通过大模型自动提取收据发票信息并结构化存储,帮助自由职业者和小企业高效管理财务。

Stars: 2028 | Forks: 271


# TaxHacker — 自托管 AI 会计师 [![GitHub Stars](https://img.shields.io/github/stars/vas3k/TaxHacker?color=ffcb47&labelColor=black&style=flat-square)](https://github.com/vas3k/TaxHacker/stargazers) [![License](https://img.shields.io/badge/license-MIT-ffcb47?labelColor=black&style=flat-square)](https://github.com/vas3k/TaxHacker/blob/main/LICENSE) [![GitHub Issues](https://img.shields.io/github/issues/vas3k/TaxHacker?color=ff80eb&labelColor=black&style=flat-square)](https://github.com/vas3k/TaxHacker/issues) [![Donate](https://img.shields.io/badge/-Donate-f04f88?logo=githubsponsors&logoColor=white&style=flat-square)](https://vas3k.com/donate/)
TaxHacker 是一款自托管记账应用,专为自由职业者、独立开发者和小型企业设计,旨在利用现代 AI 的力量节省时间并自动化支出与收入追踪。 上传收据、发票的照片或 PDF 文件,TaxHacker 将自动识别并提取您记账所需的所有重要数据:产品名称、金额、项目、日期、商家、税费,并将其保存到结构化的类 Excel 数据库中。您甚至可以使用自定义 AI 提示词创建自定义字段,以提取任何您需要的特定信息。 该应用具备基于交易日期历史汇率的自动货币转换功能(支持加密货币!)。凭借内置筛选、多项目支持、导入/导出功能以及自定义分类,TaxHacker 简化了报告流程,让报税变得稍微轻松了一些。 ![Dashboard](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/ae6c6fa027132803.webp) ## ✨ 功能特性 ### `1` 使用 AI 分析照片和发票 ![Currency Conversion](https://raw.githubusercontent.com/vas3k/TaxHacker/main/public/landing/ai-scanner-big.webp) 拍摄任意收据照片或上传发票 PDF,TaxHacker 将自动识别、提取、分类并将所有信息存储在结构化数据库中。 - **上传并整理文档**:将多个文档存储在“未分类”中,直到您准备好手动处理或在 AI 辅助下处理它们 - **AI 数据提取**:利用 AI 自动提取关键信息,如日期、金额、供应商和具体条目 - **自动分类**:交易根据内容自动归类到相关类别中 - **项目拆分**:从发票中提取单个项目,并在需要时将其拆分为单独的交易 - **结构化存储**:所有内容均保存在有组织的数据库中,便于筛选和检索 - **可自定义 AI 提供商**:可选择 OpenAI、Google Gemini 或 Mistral(即将支持本地 LLM) TaxHacker 支持多种文档,包括商店收据、餐厅账单、发票、银行对账单、信件,甚至是手写收据。它能轻松处理任何语言和任何货币。 ### `2` 具备自动转换功能的多币种支持(甚至支持加密货币!) ![Currency Conversion](https://raw.githubusercontent.com/vas3k/TaxHacker/main/public/landing/multi-currency.webp) TaxHacker 自动检测文档中的货币,并使用历史汇率将其转换为您的基础货币。 - **外币检测**:自动识别任何文档中使用的货币 - **历史汇率**:获取实际交易日期的转换汇率 - **全球覆盖**:支持 170 多种世界货币和 14 种流行加密货币(BTC, ETH, LTC, DOT 等) - **灵活输入**:当您需要更多控制时,始终可以手动输入 ### `3` 使用完全可自定义的类别、项目和字段来组织您的交易 ![Transactions Table](https://raw.githubusercontent.com/vas3k/TaxHacker/main/public/landing/transactions-big.webp) 通过无限的自定义选项,让 TaxHacker 适应您的独特需求。创建更适合您特定需求、行业标准或国家的自定义字段、项目和类别。 - **自定义类别和项目**:创建您自己的类别和项目,以任意便捷的方式对交易进行分组 - **自定义字段**:您可以创建无限数量的自定义字段,从发票中提取更多信息(就像在 Excel 中创建额外的列一样) - **全文搜索**:搜索已识别文档的实际内容 - **高级筛选**:通过搜索和筛选选项准确找到所需内容 - **AI 驱动的提取**:编写您自己的提示词,从文档中提取任何自定义信息 - **批量操作**:一次处理多个文档或交易 ### `4` 自定义任意 LLM 提示词。甚至是系统提示词 ![Custom Categories](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/1fbab425ab132905.webp) 完全掌控 TaxHacker 的 AI 如何处理您的文档。为字段、类别和项目编写自定义 AI 提示词,或修改内置提示词以匹配您的特定需求。 - **可自定义系统提示词**:在设置中修改通用提示词模板以适应您的业务 - **特定字段或项目提示词**:为特定行业的文档创建自定义提取规则 - **完全控制**:调整字段提取优先级和命名约定以匹配您的工作流程 - **行业优化**:微调 AI 以理解您特定类型的业务文档 - **完全透明**:AI 提取过程的每个方面都在您的控制之下,可以直接在设置中进行更改 TaxHacker 100% 可适配并调整以满足您的独特需求——无论您是需要从文档中提取电子邮件、地址、项目代码还是任何其他自定义信息。 ### `5` 灵活的数据筛选和导出 ![Data Export](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/cff4b65fae132916.webp) 文档处理完成后,按照您需要的方式轻松查看、筛选和导出完整的交易历史记录。 - **高级筛选**:按日期范围、类别、项目、金额和任何自定义字段进行筛选 - **灵活导出**:将筛选后的交易导出为 CSV,并包含所有附加文档 - **税务就绪报告**:为您的会计师或税务顾问生成综合报告 - **数据可移植性**:下载完整的数据存档以迁移到其他服务——数据归您所有 ### `6` 用于数据隐私的自托管模式 ![Self-hosting](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/f3c4073e68132929.png) 通过本地存储和自托管选项,完全掌控您的财务数据。TaxHacker 尊重您的隐私,并让您完全拥有自己的信息。 - **家用服务器就绪**:在您自己的基础设施上托管,以实现最大的隐私和控制 - **Docker 原生**:通过提供的 Docker 容器和 compose 文件进行简单设置 - **数据所有权**:您的财务文档永远不会脱离您的控制 - **无供应商锁定**:随时导出所有内容并进行迁移 - **透明操作**:完全访问源代码,操作完全透明 ## 🛳 部署与自托管 TaxHacker 可以轻松托管在您自己的基础设施上,从而完全控制您的数据和应用程序环境。我们提供了 [Docker 镜像](./Dockerfile)和 [Docker Compose](./docker-compose.yml) 设置,使部署变得简单: ``` curl -O https://raw.githubusercontent.com/vas3k/TaxHacker/main/docker-compose.yml docker compose up ``` Docker Compose 设置包括: - TaxHacker 应用容器 - PostgreSQL 17 数据库(或连接到您现有的数据库) - 启动时自动进行数据库迁移 - 用于持久数据存储的卷挂载 - 生产就绪配置 新版本发布时,Docker 镜像会自动构建并发布。您可以使用特定版本标签(例如 `v1.0.0`)或 `latest` 来获取最新版本。 对于高级设置,您可以自定义 Docker Compose 配置以适应您的基础设施。默认配置使用来自 GitHub Container Registry 的预构建镜像,但您也可以使用提供的 [Dockerfile](./Dockerfile) 在本地构建。 自定义配置示例: ``` services: app: image: ghcr.io/vas3k/taxhacker:latest ports: - "7331:7331" environment: - SELF_HOSTED_MODE=true - UPLOAD_PATH=/app/data/uploads - DATABASE_URL=postgresql://postgres:postgres@localhost:5432/taxhacker volumes: - ./data:/app/data restart: unless-stopped ``` ### 环境变量 使用这些环境变量配置 TaxHacker 以满足您的特定需求: | Variable | Required | Description | Example | |----------|----------|-------------|---------| | `UPLOAD_PATH` | Yes | 文件上传和存储的本地目录 | `./data/uploads` | | `DATABASE_URL` | Yes | PostgreSQL 连接字符串 | `postgresql://user@localhost:5432/taxhacker` | | `PORT` | No | 运行应用程序的端口 | `7331` (default) | | `BASE_URL` | No | 应用程序的基础 URL | `http://localhost:7331` | | `SELF_HOSTED_MODE` | No | 设置为 "true" 进行自托管:启用自动登录、自定义 API keys 和附加功能 | `true` | | `DISABLE_SIGNUP` | No | 禁用您实例上的新用户注册 | `false` | | `BETTER_AUTH_SECRET` | Yes | 身份验证密钥(至少 16 个字符) | `your-secure-random-key` | 您还可以在应用程序中或通过环境变量配置 LLM 提供商设置: - **OpenAI**: `OPENAI_MODEL_NAME` 和 `OPENAI_API_KEY` - **Google Gemini**: `GOOGLE_MODEL_NAME` 和 `GOOGLE_API_KEY` - **Mistral**: `MISTRAL_MODEL_NAME` 和 `MISTRAL_API_KEY` ## ⌨️ 本地开发 我们使用: - **Next.js 15+** 用于前端和 API - **Prisma** 用于数据库模型和迁移 - **PostgreSQL** 作为数据库(推荐 PostgreSQL 17+) - **Ghostscript 和 GraphicsMagick** 用于 PDF 处理(在 macOS 上通过 `brew install gs graphicsmagick` 安装) 设置您的本地开发环境: ``` # Clone the repository git clone https://github.com/vas3k/TaxHacker.git cd TaxHacker # 安装依赖 npm install # 设置环境变量 cp .env.example .env # 根据你的配置编辑 .env # 确保将 DATABASE_URL 设置为你的 PostgreSQL 连接字符串 # 示例:postgresql://user@localhost:5432/taxhacker # 初始化数据库 npx prisma generate && npx prisma migrate dev # 启动开发服务器 npm run dev ``` 访问 `http://localhost:7331` 查看您本地 TaxHacker 实例的运行情况。 对于生产构建,请使用以下命令代替 `npm run dev`: ``` # 构建应用程序 npm run build # 启动生产服务器 npm run start ``` ## 🤝 贡献 我们欢迎对 TaxHacker 的贡献!以下是您可以帮助改进它的方式: - **🐛 Bug 报告**:遇到问题时提交详细的问题描述 - **💡 功能请求**:分享您对新功能和改进的想法 - **🔧 代码贡献**:提交 pull request 来改进应用程序 - **📚 文档**:帮助改进文档和指南 - **🎥 内容创作**:视频、教程和评论能帮助我们触达更多用户! 所有开发工作都在 GitHub 上通过 issues 和 pull requests 进行。我们感谢任何帮助。 [![PRs Welcome](https://img.shields.io/badge/🤯_PRs-welcome-ffcb47?labelColor=black&style=for-the-badge)](https://github.com/vas3k/TaxHacker/pulls) ## ❤️ 支持项目 如果 TaxHacker 帮助您节省了时间或更好地管理了财务,请考虑支持其持续开发!您的捐赠帮助我们维护项目、添加新功能并保持其免费开源。每一份贡献都能帮助我们持续为社区改进和维护这个工具。 [![Thank the TaxHacker devs](https://img.shields.io/badge/❤️-donate%20to%20Taxhacker%20devs-f08080?labelColor=black&style=for-the-badge)](https://vas3k.com/donate/) ## 📄 许可证 TaxHacker 根据 [MIT 许可证](LICENSE) 授权。
标签:DLL 劫持, LLM, OCR识别, PDF处理, Petitpotam, Unmanaged PE, 中小企业, 人工智能, 会计软件, 分类整理, 加密货币, 发票管理, 多项目管理, 大语言模型, 开源, 收据扫描, 数据提取, 智能记账, 测试用例, 用户模式Hook绕过, 税务申报, 自动化攻击, 自动化记账, 自定义提示词, 自托管, 自由职业者, 请求拦截, 财务分析, 财务管理, 货币转换, 费用追踪