Something went wrong. Try again.
Routing embedding stack for Qwen3-Embedding-0.6B on Apple Silicon: orchestrator + MLX + llama.cpp backends
Something went wrong. Try again.
2.0 kB · 62 lines
Rust
at main
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263use anyhow::{Context, Result};use std::path::PathBuf;use std::str::FromStr;
#[derive(Debug, Clone)]pub struct Config { pub orch_port: u16,
pub swift_bin: PathBuf, pub swift_port: u16, pub swift_model_dir: PathBuf,
pub rust_bin: PathBuf, pub rust_port: u16, pub rust_model_path: PathBuf,
pub tokenizer_path: PathBuf,
pub swift_threshold: usize, pub model_max_tokens: usize, pub rust_bucket_granularity: usize, pub rust_start_timeout_ms: u64,}
fn env_or<T: FromStr>(key: &str, default: T) -> T { std::env::var(key).ok().and_then(|v| v.parse().ok()).unwrap_or(default)}
fn env_path_or(key: &str, default: &str) -> PathBuf { std::env::var(key).map(PathBuf::from).unwrap_or_else(|_| PathBuf::from(default))}
fn env_required(key: &str) -> Result<PathBuf> { std::env::var(key) .map(PathBuf::from) .with_context(|| format!("env var {key} is required"))}
impl Config { pub fn from_env() -> Result<Self> { Ok(Self { orch_port: env_or("ORCH_PORT", 8080u16), swift_bin: env_path_or( "SWIFT_BIN", "../mlx-embed-server/.build/release/EmbedServer", ), swift_port: env_or("SWIFT_PORT", 8081u16), swift_model_dir: env_required("SWIFT_MODEL_DIR")?, rust_bin: env_path_or( "RUST_BIN", "../llama-embed-server/target/release/llama-embed-server", ), rust_port: env_or("RUST_PORT", 8100u16), rust_model_path: env_required("RUST_MODEL_PATH")?, tokenizer_path: env_required("TOKENIZER_PATH")?, swift_threshold: env_or("SWIFT_THRESHOLD", 8192usize), model_max_tokens: env_or("MODEL_MAX_TOKENS", 32768usize), rust_bucket_granularity: env_or("RUST_BUCKET_GRANULARITY", 64usize), rust_start_timeout_ms: env_or("RUST_START_TIMEOUT_MS", 30_000u64), }) }}