Local smart-home AI hits a wall on multi-intent commands — classifier or planner?
A developer is building a fully local smart- using a Qwen 4B model (GGUF quantized format), Outlines to generate structured JSON, and FastAPI, MQTT, and for the rest of the stack. The current pipeline splits a user's sentence in Python, then an intent classifier sorts it into one of five — Action, Preference, Status, Scene, or Delete — before a dedicated parser turns it into structured JSON sent to MQTT or the database. This works fine for simple, single-intent commands like "turn on the hall lights" or "what's the AC status." It breaks down when a sentence contains multiple intents at once, such as "turn on lights in the R&D room when I enter and save this as a preference, and also turn on 3 lights in the Software room" — which mixes an immediate action with an automation rule.
Because the classifier assumes one command equals one intent, the small 4B model starts mixing up attributes between tasks or routing the whole request to the wrong parser as commands get more complex. The developer is now considering replacing the classifier with a small "planner" that breaks a sentence into a list of separate tasks instead.
Key points
- Local smart- built with Qwen 4B (GGUF) + Outlines (structured JSON generation) + FastAPI + MQTT +
- Current pipeline: sentence splitter → intent classifier (Action/Preference/Status/Scene/Delete) → dedicated parser → JSON → MQTT/DB
- Works well for single-intent commands but breaks on compound sentences mixing multiple intents (e.g., immediate action + automation rule)
- Considering replacing the classifier with a small "planner" model that decomposes a sentence into a list of separate tasks
- Core open question: classifier vs. planner vs. — which best suits a small