Skip to main content

BuiltinEngine

Struct BuiltinEngine 

Source
pub struct BuiltinEngine {
    pub memories: Vec<Memory>,
    pub weights: Weights,
    /* private fields */
}
Expand description

The default, zero-setup engine: scores an in-memory set with the explainable scorer. (A SQLite-backed variant just loads memories from the DB first.)

With an Embedder attached, similarity becomes semantic (cosine over embeddings); without one, it falls back to lexical term overlap.

Fields§

§memories: Vec<Memory>§weights: Weights

Implementations§

Source§

impl BuiltinEngine

Source

pub fn new(memories: Vec<Memory>) -> Self

Source

pub fn with_weights(self, weights: Weights) -> Self

Source

pub fn with_embedder(self, embedder: Arc<dyn Embedder>) -> Result<Self>

Attach an embedder and precompute embeddings for every memory that lacks one. Returns an error if embedding fails (e.g. Ollama not running).

Trait Implementations§

Source§

impl MemoryEngine for BuiltinEngine

Source§

fn name(&self) -> &str

Source§

fn retrieve(&self, query: &Query, k: usize) -> Vec<ScoredMemory>

Return the top-k memories for the query, each with its score + reasons.
Source§

fn explain(&self, id: i64, query: &Query) -> Option<ScoredMemory>

Full explanation for a single memory id (the memory explain <id> view).

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.