Expand description
Local text embedder — generates vector embeddings for semantic search.
Ported from v2’s local_embedder.py (313 lines). Provides a trait-based
embedder abstraction with two implementations:
HttpEmbedder: Calls llama-server’s/v1/embeddingsendpoint (preferred, no model download needed — uses the already-running llama-server)StubEmbedder: Hash-based pseudo-embeddings for testing/fallback
Future: An ort (ONNX Runtime) embedder can implement the same trait for
fully local embeddings without a server dependency.
§Environment Variables
| Variable | Default | Description |
|---|---|---|
WM_EMBEDDER_ENDPOINT | — | llama-server HTTP URL (e.g. http://localhost:8080) |
WM_EMBEDDER_MODEL | local | Model name for the embeddings API |
WM_EMBEDDER_DIM | 384 | Expected embedding dimensionality |
WM_EMBEDDER_TIMEOUT_MS | 30000 | Request timeout in milliseconds |
Structs§
- Embedder
Config - Configuration for the HTTP-based embedder.
- Http
Embedder - HTTP-based embedder using llama-server’s
/v1/embeddingsendpoint. - Stub
Embedder - Stub embedder — hash-based pseudo-embeddings for testing/fallback.
Traits§
- Embedder
- Trait for text embedding providers.
Functions§
- create_
embedder - Create an embedder from environment configuration, with fallback chain.
- is_
endpoint_ safe - Validate an embedder endpoint URL for SSRF safety.