-
-
1. Empty mirror: nothing learned yet, so Nano answers.
-
2. Said "concise", asked for detail: dissonance 0.95, escalated to Ultra.
-
3. Chat beside the proof panel: speed, tokens and cost.
-
4. Overview: models, budget, notes and 548 saved runs.
-
5. Test personas: success, known failures and a fake-claim case.
-
6. One report per test, with failures and fake claims flagged.
-
7. Spending limit, with predicted vs measured cost.
-
8. Nano, Super and Ultra, local or Token Factory.
-
9. Past chats deleted after 10 days, or instantly on request.
-
10. Plain-sentence notes on what it learned, no AI call.
-
11. How it works, and what's honest by design.
-
12. Replay the tutorial or open the README.
-
13. In-app tutorials, each with a "Try it" button.
-
14. The project README, readable in the app.
Inspiration
Most AI assistants take you at your word. You say "keep it short", then keep asking for more detail, and the assistant never notices. I wanted a router that treats that gap as a signal instead of ignoring it.
What it does
The Dissonance Router keeps two profiles per user: what they say they want (tone, length, sourcing, structure, revision) and what they do, learned from how they actually ask and how they rate answers. The bigger the contradiction, the stronger the model it uses:
- Nemotron Nano when words and behaviour agree
- Nemotron Super when a preference is emerging
- Nemotron Ultra (reasoning on) when they clearly conflict
Every answer says why it was routed there, and the user can accept or decline an update to their stated preference. It runs fully local on Ollama or on Nebius Token Factory with one switch, plans each answer inside a spending limit, and lets users delete saved chats instantly.
How I built it
Python, FastAPI and SQLite on the backend, and a single-file vanilla UI. Nemotron Nano reads each message for style requests and must quote the user's exact words as evidence, or nothing is learned. A habit only counts once it repeats, so one offhand remark changes nothing. The Token Factory models are nvidia/NVIDIA-Nemotron-3-Nano-30B-A3B, nvidia/nemotron-3-super-120b-a12b and nvidia/Nemotron-3-Ultra-550b-a55b.
Evidence
- 512 real reports on the Token Factory models, one per test, plus local runs
- 320 of 355 scenarios routed as expected (90%)
- At our planning prices, the router cost 93% less than always using Ultra
- In a blind comparison of 87 cases, Ultra won 56, Nano 6, and 25 were ties
Failures and unverified claims are shown in the reports, not hidden.
Challenges
- Nano sometimes misses unusual phrasings of a style request. Some held-out cases fail repeatedly, and I left them visible.
- Local and Token Factory runs fail on different cases, so I report them separately.
- Cost figures use planning prices, which overstate the real bill, so I label them that way.
What I learned
Routing by how uncertain the system is about the user works better than routing by how hard the question is, and honest failure reports are more convincing than a perfect score.
What's next
A hosted demo, more phrasings for the Nano reader, and accessibility options such as text size and reduced motion.
Built With
- css
- fastapi
- html
- javascript
- nebius-token-factory
- nvidia-nemotron
- ollama
- pytest
- python
- sqlite
Log in or sign up for Devpost to join the conversation.