Receiptory:以本地 AI 私密管理收據
Receiptory: Track receipts privately with local AI
Receiptory 讓自由工作者及小型企業追蹤開支,並整理收據資料。完整本地版本透過 OCR 和 Ollama 提取商戶、日期、總額、貨幣及類別,建議內容須由用戶確認後才會儲存。託管示範版只支援手動記帳;本地處理可避免把收據文字傳送至雲端 AI 服務。
Receiptory — private receipt tracking with local AI
This is a submission for the Hacktoberfest Open-Source AI Challenge Week 2: Side Hustle.
What I Built
Receiptory helps freelancers and small businesses track expenses and organize receipt details.
You can add, edit, search, and organize expenses. In the full local version, you can also select a receipt image or PDF. The browser reads the file and runs OCR. A local AI model suggests the merchant, date, total, currency, and category. You can review and edit the suggestions before saving; nothing is saved automatically.
A one-time license is an idea I would test with freelancers, not a price I have validated with customers.
The hosted demo is a static version. It supports manual expense tracking, but AI suggestions and local accounts require running Receiptory on your computer with Ollama.
Demo
- Hosted demo: https://receiptory.vercel.app/
-
Full local version: Install Ollama, download a model such as
qwen2.5:3b, then runnode server.js. Openhttp://localhost:8000and create a local account.
The browser downloads OCR and PDF-reading assets from CDNs on first use. Once Ollama, a model, and the browser assets are available, the full workflow can run without a cloud AI service.
Code
GitHub repository: https://github.com/Prashantkumar975/Receiptory
Receiptory uses plain HTML, CSS, and JavaScript, plus a small Node.js server with no npm package dependencies.
How I Built It
The browser uses Tesseract.js for OCR and PDF.js to render up to the first three pages of a PDF. The local Node.js server sends the extracted text to Ollama running on the same computer. I used the open-weight Qwen2.5 3B model.
The model returns expense details and marks fields that are missing or uncertain. Receiptory displays them in an editable form. The user must confirm a draft before it is saved.
Receipt files are read in the browser; there is no receipt upload endpoint. OCR text is sent to the local server and Ollama. Expenses are stored in the browser’s local storage.
Local accounts use scrypt-hashed passwords with per-user salts. Sessions use random tokens stored in server memory and expire after seven days; restarting the server signs users out. The account feature separates data within a browser profile, but it is not operating-system-level security.
Why Does Open Innovation Matter?
Local, open-source tools support Receiptory’s privacy goal. A cloud AI service would receive the receipt text. With browser OCR and Ollama running locally, users can process receipts without sending that text to a cloud AI provider.
Local inference also avoids a per-receipt API charge, though users still need hardware and electricity to run the model. Users can choose compatible models, and the review form helps catch mistakes instead of saving uncertain suggestions automatically.
devchallenge #hf26challenge
來源:DEV Community · dev.to