pub struct ScopedMemory { /* private fields */ }Expand description
One conversation’s memory: a MemoryHandle with the conversation already
applied, so recall and remember take
no conversation argument. Build it with ContextScope::memory. The
underlying handle stays reachable through handle for the
cross-conversation verbs (durable remember, graph writes).
Implementations§
Source§impl ScopedMemory
impl ScopedMemory
Sourcepub fn recall(&self) -> RecallBuilder<'_>
pub fn recall(&self) -> RecallBuilder<'_>
Recall within this conversation. Chain .semantic/.keyword/.limit
and finish with .fetch().await, exactly like the unscoped builder
minus the conversation argument.
Sourcepub fn remember(&self, payload: impl Into<Vec<u8>>) -> RememberBuilder<'_>
pub fn remember(&self, payload: impl Into<Vec<u8>>) -> RememberBuilder<'_>
Remember payload in this conversation’s session scope. Chain .kind
/.dedup and finish with .send().await.
Sourcepub fn with_lineage(
self,
origin: Option<SourceRef>,
producer: Option<ProducerInfo>,
) -> Self
pub fn with_lineage( self, origin: Option<SourceRef>, producer: Option<ProducerInfo>, ) -> Self
This scope with origin and producer stamped on every remembered item.
Sourcepub async fn block(
&self,
token_budget: Option<usize>,
) -> Result<String, LaserError>
pub async fn block( &self, token_budget: Option<usize>, ) -> Result<String, LaserError>
The one-call context altitude: recall this conversation’s most relevant items rendered as one prompt-ready block under an optional token budget.
Sourcepub fn search(&self, query: impl Into<String>) -> RecallBuilder<'_>
pub fn search(&self, query: impl Into<String>) -> RecallBuilder<'_>
Sourcepub async fn consolidate(
&self,
max_items: usize,
) -> Result<ConsolidationReport, LaserError>
pub async fn consolidate( &self, max_items: usize, ) -> Result<ConsolidationReport, LaserError>
One consolidation pass over this conversation, keeping the newest
max_items and pruning the rest.
Sourcepub async fn consolidate_with(
&self,
max_items: usize,
summarizer: impl Summarizer + Sync,
prune_summarized: bool,
) -> Result<ConsolidationReport, LaserError>
pub async fn consolidate_with( &self, max_items: usize, summarizer: impl Summarizer + Sync, prune_summarized: bool, ) -> Result<ConsolidationReport, LaserError>
consolidate with the summarize pass, see
MemoryHandle::consolidate_with.
Sourcepub async fn forget(&self, id: MemoryId) -> Result<(), LaserError>
pub async fn forget(&self, id: MemoryId) -> Result<(), LaserError>
Forget the item id if it was remembered in this conversation. A
tombstone for an item of another conversation changes nothing.
Sourcepub async fn improve(&self, feedback: Feedback) -> Result<MemoryId, LaserError>
pub async fn improve(&self, feedback: Feedback) -> Result<MemoryId, LaserError>
Record feedback on the item it targets. Like forget,
it counts only when the item was remembered in this conversation.
Sourcepub fn handle(&self) -> &MemoryHandle
pub fn handle(&self) -> &MemoryHandle
The underlying handle, for the cross-conversation verbs this scoped face does not narrow.
Sourcepub fn conversation(&self) -> ConversationId
pub fn conversation(&self) -> ConversationId
This scoped memory’s conversation id.
Sourcepub fn origin(&self) -> Option<&SourceRef>
pub fn origin(&self) -> Option<&SourceRef>
The origin stamped on every remembered item, if any.
Sourcepub fn producer(&self) -> Option<&ProducerInfo>
pub fn producer(&self) -> Option<&ProducerInfo>
The producer stamped on every remembered item, if any.
Auto Trait Implementations§
impl !Freeze for ScopedMemory
impl !RefUnwindSafe for ScopedMemory
impl !UnwindSafe for ScopedMemory
impl Send for ScopedMemory
impl Sync for ScopedMemory
impl Unpin for ScopedMemory
impl UnsafeUnpin for ScopedMemory
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> FmtForward for T
impl<T> FmtForward for T
Source§fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
self to use its Binary implementation when Debug-formatted.Source§fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
self to use its Display implementation when
Debug-formatted.Source§fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
self to use its LowerExp implementation when
Debug-formatted.Source§fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
self to use its LowerHex implementation when
Debug-formatted.Source§fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
self to use its Octal implementation when Debug-formatted.Source§fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
self to use its Pointer implementation when
Debug-formatted.Source§fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
self to use its UpperExp implementation when
Debug-formatted.Source§fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
self to use its UpperHex implementation when
Debug-formatted.impl<A, B, T> HttpServerConnExec<A, B> for Twhere
B: Body,
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> Pipe for Twhere
T: ?Sized,
impl<T> Pipe for Twhere
T: ?Sized,
Source§fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
Source§fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
self and passes that borrow into the pipe function. Read moreSource§fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
self and passes that borrow into the pipe function. Read moreSource§fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
Source§fn pipe_borrow_mut<'a, B, R>(
&'a mut self,
func: impl FnOnce(&'a mut B) -> R,
) -> R
fn pipe_borrow_mut<'a, B, R>( &'a mut self, func: impl FnOnce(&'a mut B) -> R, ) -> R
Source§fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
self, then passes self.as_ref() into the pipe function.Source§fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
self, then passes self.as_mut() into the pipe
function.Source§fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
self, then passes self.deref() into the pipe function.Source§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> Read<Exclusive, BecauseExclusive> for Twhere
T: ?Sized,
Source§impl<T> Tap for T
impl<T> Tap for T
Source§fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
Borrow<B> of a value. Read moreSource§fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
BorrowMut<B> of a value. Read moreSource§fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
AsRef<R> view of a value. Read moreSource§fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
AsMut<R> view of a value. Read moreSource§fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
Deref::Target of a value. Read moreSource§fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
Deref::Target of a value. Read moreSource§fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
.tap() only in debug builds, and is erased in release builds.Source§fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
.tap_mut() only in debug builds, and is erased in release
builds.Source§fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
.tap_borrow() only in debug builds, and is erased in release
builds.Source§fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
.tap_borrow_mut() only in debug builds, and is erased in release
builds.Source§fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
.tap_ref() only in debug builds, and is erased in release
builds.Source§fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
.tap_ref_mut() only in debug builds, and is erased in release
builds.Source§fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
.tap_deref() only in debug builds, and is erased in release
builds.