pub struct Config {
pub database_path: PathBuf,
pub embedding_model: String,
pub similarity_threshold: f64,
pub recency_weight: f64,
pub hybrid: bool,
pub decay_refresh_days: f64,
pub promotion_threshold: i64,
pub prune_retrieval_limit: i64,
pub prune_min_age_days: f64,
}Expand description
Configuration values with priority: defaults < config file < env vars.
Provides configuration options for the memory store, including database paths, embedding model selection, and search parameters.
§Example
use vipune::Config;
let config = Config::default();
println!("Database path: {:?}", config.database_path);Fields§
§database_path: PathBufPath to the SQLite database file (e.g., ~/.vipune/memories.db).
embedding_model: StringHuggingFace embedding model identifier (e.g., BAAI/bge-small-en-v1.5).
similarity_threshold: f64Minimum similarity score (0.0-1.0) required for search results to be returned.
recency_weight: f64Weight applied to recency in search ranking (0.0 = ignore time, 1.0 = prioritize recent).
hybrid: boolWhether to use hybrid search (semantic + BM25) by default.
decay_refresh_days: f64Cap (in days) on the recency refresh used in decay scoring.
promotion_threshold: i64Retrieval-count threshold (>=) for promoting a candidate to active.
prune_retrieval_limit: i64Prune eligibility: a candidate with retrieval_count < N is prunable.
prune_min_age_days: f64Prune eligibility: a candidate older than T days is prunable.
Implementations§
Source§impl Config
impl Config
Sourcepub fn load() -> Result<Self, Error>
pub fn load() -> Result<Self, Error>
Load configuration with defaults, file values, and environment overrides.
Sourcepub fn ensure_directories(&self) -> Result<(), Error>
pub fn ensure_directories(&self) -> Result<(), Error>
Ensure the parent directory of the database path exists.
Model files are cached in the HuggingFace Hub cache
(~/.cache/huggingface/hub/ by default), which hf-hub creates on
demand — vipune does not pre-create any model directory.
Trait Implementations§
Source§impl<'de> Deserialize<'de> for Config
impl<'de> Deserialize<'de> for Config
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 Config
impl RefUnwindSafe for Config
impl Send for Config
impl Sync for Config
impl Unpin for Config
impl UnsafeUnpin for Config
impl UnwindSafe for Config
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,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
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