# Hosted embedding (semantic search) model

**Not a bundled model.** Every other role under `downloads.myne.md/models/` is a
copy of weights the Myne bundle already ships. This one is not: the desktop app
ships no embedding model, and semantic search stays off until the user picks a
`.safetensors` in Settings → Developer → AI. It is hosted here so that choice
has somewhere to point, rather than sending users to a third-party site.

At 471 MB it is deliberately not bundled: it would roughly double the download
for a feature that is an opt-in beta, and `scripts/check-desktop-payload-budget.mjs`
compares the bundle's `models/*` set against `{whisper, ocr, tag}` in both
directions, so adding a fourth is a decision rather than a build detail.

## Provenance

Upstream: <https://huggingface.co/intfloat/multilingual-e5-small>, repository
commit `614241f622f53c4eeff9890bdc4f31cfecc418b3`. Licence: MIT, per the model
card's `license: mit`; the upstream tree carries no LICENSE file, so
`MODEL-LICENSE` records that declaration and the canonical text.

| File | SHA-256 | Bytes |
|---|---|---|
| `model.safetensors` | `1a55775f53449dac10a2bcbc312469fac40b96d53198c407081a831f81c98477` | 470641600 |
| `tokenizer.json` | `0b44a9d7b51c3c62626640cda0e2c2f70fdacdc25bbbd68038369d14ebdf4c39` | 17082730 |
| `config.json` | `69137736cab8b8903a07fe8afaafdda25aac55415a12a55d1bffa9f581abf959` | 655 |

**Multilingual, and that is load-bearing rather than a preference.**
`CHAT_RELEVANCE_THRESHOLD` in `src-tauri/src/plugins/local_inference/commands.rs`
is 0.30, chosen from a real-vault measurement with a multilingual embedder where
cosines discriminate (relevant ~0.5-0.8, weak ~0.2-0.35). An English-only model
gives a flat ~0.83-0.98 distribution in which that cutoff is a no-op, so
swapping this role for one is a retrieval-quality change, not a size trade.

## What the app does with it

Nothing automatically. The user points the embedding-model setting at
`model.safetensors`; the loader reads `config.json` and `tokenizer.json` from
the same directory (`engine_candle.rs`, `load_embed`), so all three files have
to land together.
