pub struct PolicyMemory<M, P> { /* private fields */ }Expand description
Applies a policy to loaded history, propagating backend and policy errors unchanged. Append and clear operations delegate to the backend.
§Example
use rig_memory::{InMemoryConversationMemory, PolicyMemory, SlidingWindowMemory};
let memory = PolicyMemory::new(
InMemoryConversationMemory::new(),
SlidingWindowMemory::last_messages(20),
);Implementations§
Source§impl<M, P> PolicyMemory<M, P>
impl<M, P> PolicyMemory<M, P>
Sourcepub fn new(inner: M, policy: P) -> Self
pub fn new(inner: M, policy: P) -> Self
Wrap inner so every loaded history is run through policy.
Sourcepub fn into_inner(self) -> (M, P)
pub fn into_inner(self) -> (M, P)
Consume the wrapper and return the underlying backend and policy.
Trait Implementations§
Source§impl<M, P> ConversationMemory for PolicyMemory<M, P>where
M: ConversationMemory,
P: MemoryPolicy,
impl<M, P> ConversationMemory for PolicyMemory<M, P>where
M: ConversationMemory,
P: MemoryPolicy,
Source§fn load<'a>(
&'a self,
conversation_id: &'a ConversationId,
) -> WasmBoxedFuture<'a, Result<Vec<Message>, MemoryError>>
fn load<'a>( &'a self, conversation_id: &'a ConversationId, ) -> WasmBoxedFuture<'a, Result<Vec<Message>, MemoryError>>
Load the full conversation history for
conversation_id. Read moreSource§fn append<'a>(
&'a self,
conversation_id: &'a ConversationId,
messages: Vec<Message>,
) -> WasmBoxedFuture<'a, Result<(), MemoryError>>
fn append<'a>( &'a self, conversation_id: &'a ConversationId, messages: Vec<Message>, ) -> WasmBoxedFuture<'a, Result<(), MemoryError>>
Source§fn clear<'a>(
&'a self,
conversation_id: &'a ConversationId,
) -> WasmBoxedFuture<'a, Result<(), MemoryError>>
fn clear<'a>( &'a self, conversation_id: &'a ConversationId, ) -> WasmBoxedFuture<'a, Result<(), MemoryError>>
Remove all stored messages for
conversation_id.impl<M: Copy, P: Copy> Copy for PolicyMemory<M, P>
Auto Trait Implementations§
impl<M, P> Freeze for PolicyMemory<M, P>
impl<M, P> RefUnwindSafe for PolicyMemory<M, P>where
M: RefUnwindSafe,
P: RefUnwindSafe,
impl<M, P> Send for PolicyMemory<M, P>
impl<M, P> Sync for PolicyMemory<M, P>
impl<M, P> Unpin for PolicyMemory<M, P>
impl<M, P> UnsafeUnpin for PolicyMemory<M, P>where
M: UnsafeUnpin,
P: UnsafeUnpin,
impl<M, P> UnwindSafe for PolicyMemory<M, P>where
M: UnwindSafe,
P: UnwindSafe,
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
Mutably borrows from an owned value. Read more