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

Share this project:

Updates

Submission history