ix-embeddings
Shared embedding infrastructure for Ixchel with pluggable providers.
Why
Multiple Ixchel tools need semantic embeddings:
- ixchel — Embed knowledge artifacts for semantic search
- demo-got — Example usage for graph + vector pipelines
This crate provides a unified
Embedderso each tool doesn't reinvent embedding logic.
Usage
use Embedder;
// Create embedder (uses config from ~/.ixchel/config/config.toml and .ixchel/config.toml)
let embedder = new?;
// Embed single text
let embedding = embedder.embed?;
assert_eq!;
// Embed batch (more efficient)
let embeddings = embedder.embed_batch?;
Providers
Enable providers via Cargo features:
| Provider | Feature | GPU Support | Notes |
|---|---|---|---|
| fastembed | fastembed (default) |
CPU only | ONNX Runtime, fast startup |
| candle | candle |
Metal/CUDA | Hugging Face models, GPU acceleration |
Feature Flags
# Default (fastembed only)
= { = "..." }
# Candle with Metal (macOS)
= { = "...", = ["candle", "metal"] }
# Candle with CUDA (Linux/Windows)
= { = "...", = ["candle", "cuda"] }
# Both providers
= { = "...", = ["fastembed", "candle"] }
Configuration
Configure via ~/.ixchel/config/config.toml:
[]
= "fastembed" # or "candle"
= "BAAI/bge-small-en-v1.5" # HuggingFace model ID
= 32 # Batch size for embed_batch
= 384 # Optional (auto-detected)
Supported Models
FastEmbed (ONNX)
BAAI/bge-small-en-v1.5(default, 384 dimensions)BAAI/bge-base-en-v1.5(768 dimensions)sentence-transformers/all-MiniLM-L6-v2(384 dimensions)
See fastembed docs for full model list.
Candle
Any BERT-based model from Hugging Face Hub:
| Model | Params | Dims | Notes |
|---|---|---|---|
sentence-transformers/all-MiniLM-L6-v2 |
22M | 384 | Fastest, good quality |
BAAI/bge-small-en-v1.5 |
33M | 384 | Better retrieval |
BAAI/bge-base-en-v1.5 |
109M | 768 | Higher quality |
BAAI/bge-large-en-v1.5 |
335M | 1024 | Best quality (recommended with GPU) |
For highest quality with Metal GPU acceleration:
[]
= "candle"
= "BAAI/bge-large-en-v1.5"
Consumers
| Tool | Use Case |
|---|---|
| Ixchel | Semantic search over knowledge |
| demo-got | Example usage + benchmarking |
License
MIT