--- license: apache-2.0 base_model: Qwen/Qwen3-1.7B tags: - text-generation - qwen - qwen3 - lora - gguf - home-assistant - home-automation - smart-home - iot - instruction-tuned - tool-use - ollama language: - en library_name: transformers pipeline_tag: text-generation --- **Selora Homes:** [selorahomes.com](https://selorahomes.com) **Selora AI Home Assistant Integration:** [github.com/SeloraHomes/ha-selora-ai](https://github.com/SeloraHomes/ha-selora-ai) --- # Selora AI Selora AI is an instruction-tuned language model for [**Home Assistant**](https://www.home-assistant.io/), the open-source **smart home** platform. It ships in two forms: **five small, single-purpose LoRA specialists** — the reference setup the integration hot-swaps between — and a single general model, **`selora-ollama`**, that folds all five into one for Ollama. Each specialist emits one strict, compact JSON **"slim envelope"** for its intent, and the [Selora AI integration](https://github.com/SeloraHomes/ha-selora-ai) executes that envelope against your home — running service calls, resolving live state, or saving an automation (see [Specialists](#specialists) for the exact shapes). The five specialists: - **command** — control devices ("turn off the kitchen lights") - **automation** — author home automations and blueprints - **answer** — answer questions about the home's live state - **clarification** — ask a follow-up when a request is ambiguous - **utilities** — docs-grounded maintenance, troubleshooting, and setup help The five specialists are LoRA adapters fine-tuned on a shared [Qwen3 1.7B](https://huggingface.co/Qwen/Qwen3-1.7B) base. **Base:** Qwen3 1.7B · **Format:** GGUF Q6_K base + 5 per-specialist LoRA adapters (F16) · **License:** Apache-2.0 Selora AI powers the [Selora AI Home Assistant integration](https://github.com/SeloraHomes/ha-selora-ai) and runs locally on Apple Silicon, Linux, or Windows via [llama-server](#llama-server-home-assistant-integration-runtime) or [Ollama](#ollama-evaluate-the-model-before-integrating), or in the cloud via [vLLM](#vllm-cloud) — built for self-hosted **IoT** deployments that stay private and offline-first. ## Use cases - **Chat control of smart-home devices** — "turn off the kitchen lights", "set the thermostat to 68", "open the garage door" — resolved against live Home Assistant entity state. - **Natural-language home automation creation** — describe an automation in plain English ("when the front door opens after 10pm, turn on the porch light") and Selora returns valid Home Assistant YAML as a draft you review before it's saved. - **Scene and routine orchestration** — chain actions across multiple entities ("good night" → lock doors, dim bedroom lights, set thermostat) without hand-writing scripts. - **Q&A about your home** — "is the laundry running?", "what's the temperature upstairs?" — the `answer` adapter returns the entities to check plus a response template, and the integration fills in the live state. - **Docs-grounded help** — "why is the living-room sensor unavailable?", "how do I add the Hue integration?", "which integrations have pending updates?" — answered from retrieved Home Assistant documentation, with live state pulled in via entity placeholders and citations back to the source docs. - **Privacy-first home assistant** — runs entirely on local hardware (Raspberry Pi 5, Mac mini, NUC-class boxes) with no cloud dependency, so device commands and home telemetry never leave the LAN. ## Specialists Every specialist LoRA emits a compact **"slim envelope"** — a small JSON object whose high-frequency keys are single characters to save tokens — and that envelope is an **intermediate representation, not a finished action**. The Selora AI integration's `_convert_slim_shape` parser turns it into real Home Assistant activity: run a downloaded GGUF on its own and you get the envelope back; it takes the integration (or an equivalent parser) to execute service calls, resolve live state, build YAML, or attach citations. By design the model **never fabricates device state** — it emits the calls to make, the entities to look up, the question to ask, or the automation to build, and the integration completes the loop against live HA. | Adapter | Emits (raw model output) | What the integration does with it | | --- | --- | --- | | `command` | `{"c":[{"s":"","e":"","d":{…}}],"r":""}` | Executes each `c` as an HA service call, in array order, then shows `r`. The model does **not** call services itself. | | `answer` | `{"r":"","q":["",…]}` | Looks up the `q` entities' live state and substitutes it into the `{entity_id}` placeholders in `r`. The model templates state; it never reads it. | | `clarification` | `{"q":"","o":["