n8n ran a full AI stack on one NVIDIA DGX Spark with no cloud API. Invoice extraction took under a second with thinking off
For clinics, law firms and accountants, the question is not which model. It is whether the data can leave the building.
What happened
n8n published a guide to running every AI model a small team's workflows need on one NVIDIA DGX Spark, behind one OpenAI-compatible endpoint that n8n's OpenAI nodes already speak. The stack uses vLLM to serve the models and LiteLLM as the single endpoint, with per-team virtual keys that track usage even though nothing is billed per token.
The main model, Qwen3.6-35B-A3B, is a mixture-of-experts model with about 3B active parameters. On the author's box it generated 120 tokens per second for one user and 359 tokens per second in total across eight users. With all seven models loaded, the box used 108GB of memory with 13GB left. NVIDIA sells the DGX Spark in 64GB and 128GB configurations, so this stack needs the larger one.
The sample workflow reads an uploaded invoice with OCR and extracts supplier, invoice number, date, total and currency. With the model's thinking on, it wrote 1,538 reasoning tokens before a 78-token answer. With thinking off, it got all five fields right in under a second. OCR dropped one zero from a VAT ID, and image generation cut chat speed to about a third while it ran. The author says licenses were harder than model quality, and only allowed models with commercial licenses.
My take
This is the most practical local AI writeup I have seen for small business automation, because it reports the failures too.
Lessons I would copy straight into client builds:
- Turn off reasoning for fixed-format extraction. It was the difference between slow and under a second
- Validate IDs after OCR. A missing zero in a VAT ID is exactly the kind of error that reaches the books
- Pin model versions and check every license before you deploy for a client
- Queue heavy jobs like images outside working hours if one box serves the whole team
Local does not mean simpler. You take on patching, memory planning and licensing. For regulated clients, that trade is often worth it, and the LiteLLM layer means you can swap models later without touching the workflows.
More posts
- MiniMax M3.1 Flash costs $0.15 in and $0.60 out per million tokens, but its hallucination rate is 93%. Give it a way to say unknownOct 20, 2026
- Attackers aimed cheap AI agents at mid-sized online stores. Successful breaches took about 23 hoursOct 20, 2026
- Attackers took API keys stored in OpenCode's console and ran up charges, some above $1,000. Check where your automation keys liveOct 20, 2026
