pub struct ModelConfig {
pub model: EmbeddingModel,
pub cache_dir: Option<String>,
pub max_batch_size: usize,
pub use_gpu: bool,
pub num_threads: Option<usize>,
pub session_pool_size: usize,
pub backend_override: Option<BackendKind>,
}Expand description
Configuration for model loading and inference.
Fields§
§model: EmbeddingModelThe embedding model to use.
cache_dir: Option<String>Custom cache directory for model files. If None, uses HuggingFace default cache.
max_batch_size: usizeMaximum batch size for inference.
use_gpu: boolWhether to use GPU acceleration if available.
num_threads: Option<usize>Number of threads for CPU inference.
session_pool_size: usizeNumber of parallel ONNX sessions in the session pool.
Each session holds its own ORT context. Pool members serve batches
concurrently via spawn_blocking, eliminating Mutex head-of-line
blocking when multiple callers embed text simultaneously.
Defaults to 4; override with DAKERA_ONNX_POOL_SIZE env var at startup.
backend_override: Option<BackendKind>Force a specific backend kind, bypassing DAKERA_BACKEND env var.
Used by TieredEngine to build the fast (static) backend from the same config.
Implementations§
Source§impl ModelConfig
impl ModelConfig
Sourcepub fn new(model: EmbeddingModel) -> Self
pub fn new(model: EmbeddingModel) -> Self
Create a new config with the specified model.
Sourcepub fn with_cache_dir(self, dir: impl Into<String>) -> Self
pub fn with_cache_dir(self, dir: impl Into<String>) -> Self
Set the cache directory.
Sourcepub fn with_max_batch_size(self, size: usize) -> Self
pub fn with_max_batch_size(self, size: usize) -> Self
Set the maximum batch size.
Sourcepub fn with_num_threads(self, threads: usize) -> Self
pub fn with_num_threads(self, threads: usize) -> Self
Set the number of CPU threads.
Sourcepub fn with_session_pool_size(self, size: usize) -> Self
pub fn with_session_pool_size(self, size: usize) -> Self
Set the number of parallel ONNX sessions in the pool.
Trait Implementations§
Source§impl Clone for ModelConfig
impl Clone for ModelConfig
Source§fn clone(&self) -> ModelConfig
fn clone(&self) -> ModelConfig
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for ModelConfig
impl Debug for ModelConfig
Source§impl Default for ModelConfig
impl Default for ModelConfig
Source§impl<'de> Deserialize<'de> for ModelConfig
impl<'de> Deserialize<'de> for ModelConfig
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Auto Trait Implementations§
impl Freeze for ModelConfig
impl RefUnwindSafe for ModelConfig
impl Send for ModelConfig
impl Sync for ModelConfig
impl Unpin for ModelConfig
impl UnsafeUnpin for ModelConfig
impl UnwindSafe for ModelConfig
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more