Skip to content

embabel embeddings

Whether documents can be indexed, and with what.

Terminal window
embabel embeddings show # on or off, and why
embabel embeddings use local # ~1.1GB, runs here, nothing leaves the machine
embabel embeddings use hosted # uses the provider key you already gave
embabel embeddings off # no model; document features go off

An appliance ships without an embedding model. The local one is about 1.1GB and needs Docker Model Runner, which is a Docker Desktop feature — so requiring it made every first run pay for a capability many people never touch, and ruled out plain Docker Engine entirely, where docker model is not a command at all.

So document features are off, not broken, and the difference is the point: upload answers 409 with one sentence naming the command that fixes it, rather than accepting a document it cannot index or returning an empty search that looks like an empty world. Everything else — the graph, realms, views, handlers, chat — works untouched.

First-run setup offers this and defaults to no, so knowing the capability exists costs nothing.

The choice is sticky. Vectors already stored were made by whichever model made them, and a vector index is built at that model’s width — so changing the model re-embeds everything already indexed. The appliance does that properly (drop the indexes, re-embed each store, rebuild at the new width, roll back on failure), but it is not free, and a first choice on an empty appliance is the cheap moment to make it.

use local composes in embeddings-local-<mode>.yml, which is the only thing that requires Model Runner. Without it, nothing in the compose files mentions it.

use hosted writes a ROLE, not a model name, and the difference is load-carrying. The appliance image ships no provider starters, so a model name like text-embedding-3-small matches nothing registered and resolves to the setup-required placeholder — document features would stay off with nothing saying why. A role is resolved per call against whichever key the appliance holds, so it means “embed with the key I gave you” and keeps meaning that if you later swap providers. use openai still works and sets the same role; so does typing a known hosted model name.