Context
Over PRs #320 (profile abstraction), #322 (provider reporting + SigLIP removal), and #323 (task prefix support), we made several architectural decisions about embedding that should be captured in a formal ADR:
Decisions to document
-
Profile-based embedding config (migration 055) — text + image model slots stored in DB, hot-reloadable, with protection flags and vector space tags
-
SigLIP removal — evaluated as a dead end due to lack of shared text/image embedding space with our text model. Removed seed profile.
-
Jina CLIP v2 rejection — CC BY-NC 4.0 license makes it unsuitable for unrestricted commercial use
-
Nomic v1.5 as primary — best available option balancing quality, license (Apache 2.0), shared text/image space, 8K token context, and sentence-transformers compatibility
-
Purpose-aware task prefixes (migration 056) — search_query: / search_document: prefixes stored per-profile, applied via prompt_name for sentence-transformers or raw prepend for transformers loader
-
Qwen3-VL-Embedding-2B noted as future candidate — Apache 2.0, 2048-dim, 32K context, but requires vLLM/custom loader infrastructure we don't have yet
References
Context
Over PRs #320 (profile abstraction), #322 (provider reporting + SigLIP removal), and #323 (task prefix support), we made several architectural decisions about embedding that should be captured in a formal ADR:
Decisions to document
Profile-based embedding config (migration 055) — text + image model slots stored in DB, hot-reloadable, with protection flags and vector space tags
SigLIP removal — evaluated as a dead end due to lack of shared text/image embedding space with our text model. Removed seed profile.
Jina CLIP v2 rejection — CC BY-NC 4.0 license makes it unsuitable for unrestricted commercial use
Nomic v1.5 as primary — best available option balancing quality, license (Apache 2.0), shared text/image space, 8K token context, and sentence-transformers compatibility
Purpose-aware task prefixes (migration 056) —
search_query:/search_document:prefixes stored per-profile, applied viaprompt_namefor sentence-transformers or raw prepend for transformers loaderQwen3-VL-Embedding-2B noted as future candidate — Apache 2.0, 2048-dim, 32K context, but requires vLLM/custom loader infrastructure we don't have yet
References