| --- |
| title: ERP-DocIQ |
| emoji: π |
| colorFrom: indigo |
| colorTo: blue |
| sdk: gradio |
| sdk_version: 6.9.0 |
| app_file: gradio_app.py |
| pinned: false |
| license: mit |
| short_description: OCR/IDP + ERP NLQ chatbot on small models (MiniCPM) |
| tags: |
| - build-small-hackathon |
| - backyard-ai |
| - best-minicpm-build |
| - best-agent |
| - tiny-titan |
| - minicpm |
| - ocr |
| - idp |
| - nlq |
| - rag |
| - agent |
| - fine-tuning |
| --- |
| |
| # ERP-DocIQ β back-office automation on small models |
|
|
| > **Build Small Hackathon Β· Practical track (Backyard AI).** A useful, problem-solving app |
| > that runs on hardware you own β built entirely on **open models β€32B**, with **OpenBMB |
| > MiniCPM** as the load-bearing model (and fine-tuned for the domain). |
|
|
| ## π‘ The idea |
| Retail back-offices drown in paperwork and report requests. **ERP-DocIQ** is an open-source, |
| UiPath-style assistant that **reads your documents**, **answers questions about your ERP in |
| plain English**, and **automates the boring clicks** β all on small models, no per-robot |
| license, no data leaving your tenancy. |
|
|
| ## π§© The business problem |
| A retail brand's IT team runs **UiPath** for invoice/PO processing and portal automation. It's |
| **expensive** (per-robot / AI-Unit licensing, six figures/yr at volume), **brittle** (selector |
| recorders break on every UI change), **locked-in** (closed IDP models you can't swap or |
| fine-tune), and **slow to change** (new layouts wait on a closed retraining toolchain). On top |
| of that, every "what did we spend in Q2?" becomes a **BI ticket**. They wanted an AI-native, |
| open, cheaper alternative they control. |
|
|
| ## π οΈ The solution approach β one Gradio app |
| 1. **Read any document (OCR + IDP).** A hybrid pipeline β OCR β classify β extract β normalize β |
| enrich (RAG) β validate β post / human-review β reads orders, receipts, invoices, contracts |
| and complex multi-layer forms, **even messy scans/photos**, into structured ERP records. |
| 2. **Ask your ERP reports (ERP DocIQ chatbot).** Natural-language **NLQ β SQL**, analytics, |
| summaries and **"why"** reasoning over a simulated retail ERP (vendors Β· POs Β· invoices Β· GL Β· |
| inventory Β· returns). Every figure comes from **real SQL over the data** β the model only |
| *phrases* the answer, it never invents numbers. |
| 3. **Automate the clicks (agentic browser).** A self-correcting, multi-step browser agent drives |
| a portal (dashboard β Procurement β Create Order β read the complex form) β selector-free and |
| self-healing, replacing fragile RPA recorders. |
|
|
| ## π€ Models used β small (β€32B), the right one for each job |
| Three labs, eight models, all under the cap. **MiniCPM is the core.** |
|
|
| | Lab | Model | Params | Role in ERP-DocIQ | |
| |---|---|---:|---| |
| | **OpenBMB** | **MiniCPM-V-4.6** | 8B | **primary OCR + vision extraction** (reads messy/rotated/scanned docs β JSON) | |
| | **OpenBMB** | MiniCPM-o-4.5 | 8B | alt omni VLM | |
| | **OpenBMB** | **MiniCPM3-4B** | **4B** | **ERP reasoning Β· NLQβSQL Β· summarization β and the fine-tune target** | |
| | **Cohere** | Aya-Vision-8B / 32B | 8β32B | alt OCR / VQA backend (23 languages) | |
| | **Cohere** | Command R7B | 7B | alt RAG Β· NLQ Β· grounded reasoning | |
| | **Black Forest Labs** | FLUX.1 [dev]/[schnell] | 12B | image *generation* β synthetic OCR stress docs (honestly, not an OCR model) | |
|
|
| A single ~8B MiniCPM-V powers OCR **and** vision extraction **and** the grounded chat phrasing β |
| so the whole product runs on small, swappable, open weights. `GET /api/models` lists which are live. |
|
|
| ## π― Fine-tuning β adapting a small model to the ERP domain |
| We fine-tune **OpenBMB MiniCPM3-4B (4B)** on an instruction dataset built from the ERP |
| knowledgebase (`results/erp_sft.jsonl`): |
| - **Production:** a LoRA (PEFT/TRL `SFTTrainer`) recipe β `scripts/finetune_erp.py --backend hf`. |
| - **Offline CPU demo (runs anywhere):** trains the ERP NLQ-routing head on the same data with a |
| real train/test split β **untrained 8.3% β fine-tuned 91.7% (+83 pts)**, 100% routed-SQL |
| execution. See `results/erp_finetune_report.json`. |
|
|
| ## π Benefits / value delivered |
| - **Significantly lower inference cost** vs per-document RPA licensing (model routing + prompt caching). |
| - **No vendor lock-in, data stays on-prem** β open weights you can run, read and fine-tune. |
| - **Self-service ERP analytics** (NLQ) deflects routine BI/report tickets off the queue. |
| - **Reads documents classic OCR can't** β MiniCPM-V cuts character error **~5.6Γ vs Tesseract** |
| (CER **2.6%** vs 14.7%; see `results/ocr_quality_report.json`); field-exact **90.7%**. |
| - **Honest, measured** β every claim is backed by a published eval/quality/fine-tune report. |
|
|
| ## β
How it meets the Build Small criteria |
| - **β€32B params** β every model is β€32B; the reasoning/NLQ engine + fine-tune target is **4B**. |
| - **Best MiniCPM Build** β MiniCPM-V (OCR + vision) and **MiniCPM3-4B** (reasoning/NLQ + |
| fine-tuned) are the core of the experience; vision/omni variants qualify. |
| - **Best Agent** β multi-step, self-healing agentic browser automation + an IDP state graph. |
| - **Ships as a Gradio Space** in the Build Small org; runs offline (deterministic ERP engine + |
| sidecar OCR) and upgrades to hosted MiniCPM when keys are set. |
|
|
| ## βΆοΈ Use it (tabs) |
| - **Process a document** β pick an OCR backend (`auto`, `minicpm`, `tesseract`) + a sample |
| (try `extreme_receipt_photo` or `complex_invoice_messy`) or upload your own β multi-layer fields + KPIs. |
| - **ERP DocIQ (chat)** β ask *"Why did spend rise in Q2 2026?"*, *"Top vendors by spend"*, |
| *"late-payment rate"* β grounded answer + SQL + the fine-tuning panel. |
| - **Search (RAG)** β semantic vendor-master retrieval. **Web Automation** β multi-step browser flow. |
|
|
| ## π¦ Published results (`results/`) |
| - `ocr_quality_report.json` β OCR CER/WER + field accuracy per backend. |
| - `erp_finetune_report.json` + `erp_sft.jsonl` β fine-tune metrics + the instruction dataset. |
|
|
| ## βοΈ Configure (Space β Settings β Variables and secrets) |
| - Variables: `MINICPM_BASE_URL=https://api.modelbest.cn/v1`, `MINICPM_MODEL=MiniCPM-V-4.6-Instruct` |
| - Secret: `MINICPM_API_KEY=β¦` (OpenBMB/ModelBest). Tesseract ships via `packages.txt`. |
| - **Runs fully offline without a key** β ERP DocIQ uses its deterministic SQL engine and OCR |
| falls back to the sidecar, so every tab works. |
|
|
| ## π₯ Demo & social |
| - **Demo video:** https://youtu.be/mWs7eRVH_GM |
| - **Social post:** https://www.linkedin.com/posts/kaniskamandal_huggingface-buildsmall-buildsmall-share-7472163579094401024-fjp9/ |
| - **Blog post:** https://huggingface.co/spaces/build-small-hackathon/ERP-DocIQ/blob/main/BLOG.md |
|
|