Configuration¶
Catalogs are JSON arrays of ModelAliasSpec entries.
Canonical schema shape¶
[
{
"alias": "embed/default",
"task": "embed",
"provider_id": "local/candle",
"model_id": "sentence-transformers/all-MiniLM-L6-v2",
"revision": null,
"warmup": "lazy",
"required": false,
"timeout": 10,
"load_timeout": 600,
"retry": {
"max_attempts": 3,
"initial_backoff_ms": 100
},
"options": null
}
]
Field constraints¶
alias: string matching.+/.+.task: one ofembed,rerank,generate,raw,embed_image,embed_audio,embed_multimodal,embed_sparse,embed_multi_vector,embed_hybrid,nlp,document_extract,transcribe,ocr.warmup: one ofeager,lazy,background.timeout,load_timeout: integer >= 1.retry.max_attempts,retry.initial_backoff_ms: integer >= 1.options: object or null, strict provider-specific keys only.
Provider options reference¶
| Provider ID | Allowed option keys | Notes |
|---|---|---|
local/candle |
cache_dir |
Per-model local cache path |
local/onnx |
artifact, max_batch_size, execution_providers, graph_optimization_level, inter_op_num_threads, intra_op_num_threads, cache_dir (all tasks); max_seq_len, style, instruction (rerank); pooling (cls/mean/max/last-token), normalize, dimensions, token_type_ids, tokenizer_path, output_name, max_seq_len (embed); sparse_method (mlm/lexical), output_name, output_index, max_seq_len, token_type_ids, top_k, tokenizer_path (embed_sparse); dimensions, normalize, drop_special_tokens, output_name, output_index, max_seq_len, token_type_ids, tokenizer_path (embed_multi_vector); max_seq_len, tokenizer_path, token_type_ids, top_k (embed_hybrid — preset-driven, options are pass-wide globals only) |
Per-task ONNX Runtime configuration. Rerank style is cross-encoder (default; single-logit BERT-style models like BAAI/bge-reranker-base) or generative (decoder-LM rerankers like Qwen3-Reranker that emit yes/no token logits). Embed pooling: "last-token" is for decoder-style embedders (Qwen3-Embedding, NV-Embed). embed_sparse produces learned-sparse term-weight vectors (sparse_method: "mlm" for SPLADE-style MLM logits, "lexical" for BGE-M3 lexical weights); embed_multi_vector produces per-token ColBERT-style late-interaction embeddings. The embed lane subsumes the retired local/fastembed provider as of 0.8.0; FastEmbed alias strings such as BGESmallENV15 still resolve via the built-in preset table |
local/mistralrs |
pipeline, dtype, isq, uqff_files, force_cpu, paged_attention, max_num_seqs, max_seq_len, max_batch_size, max_image_shape, max_num_images, chat_template, tokenizer_json, embedding_dimensions, gguf_files, diffusion_loader_type, speech_loader_type |
Multimodal pipelines (text, vision, diffusion, speech), quantization (in-situ via isq or pre-quantized via uqff_files), auto-device-mapper overrides, and local runtime tuning |
remote/openai |
api_key_env, base_url, embedding_dimensions |
Override env var name for API key; override base URL (for OpenAI-compatible servers); override embedding dimensions |
remote/gemini |
api_key_env, api_version, embedding_dimensions |
api_version defaults to v1beta; override embedding dimensions |
remote/vertexai |
api_token_env, project_id, location, publisher, embedding_dimensions |
OAuth token + project/location metadata; set location to a region (e.g. us-central1) or global to use the global endpoint (aiplatform.googleapis.com) |
remote/mistral |
api_key_env, embedding_dimensions |
Override env var name for API key; override embedding dimensions |
remote/anthropic |
api_key_env, anthropic_version |
anthropic_version defaults to 2023-06-01 |
remote/voyageai |
api_key_env, embedding_dimensions |
Override env var name for API key; override embedding dimensions |
remote/cohere |
api_key_env, input_type, embedding_dimensions |
input_type used for embedding mode; override embedding dimensions |
remote/azure-openai |
api_key_env, resource_name, api_version, embedding_dimensions |
resource_name required; api_version default 2024-10-21; override embedding dimensions |
Provider-specific model/config links:
Runtime builder paths¶
- Programmatic catalog:
.catalog(Vec<ModelAliasSpec>) - JSON string catalog:
.catalog_from_str(&str) - JSON file catalog:
.catalog_from_file(path)
Helpful APIs¶
runtime.contains_alias(alias)runtime.prefetch_all()runtime.prefetch(&[aliases])runtime.embedding(alias)/runtime.embedder(alias)runtime.sparse_embedder(alias)runtime.multi_vector_embedder(alias)runtime.reranker(alias)runtime.generator(alias)runtime.raw_tensor_model(alias)