pub struct StreamingMemoryExtractor { /* private fields */ }Expand description
Streaming Memory Extractor - core processing engine
Implementations§
Source§impl StreamingMemoryExtractor
impl StreamingMemoryExtractor
pub fn new(neural_ner: Arc<NeuralNer>) -> Self
Sourcepub async fn create_session(
&self,
handshake: StreamHandshake,
) -> Result<String, String>
pub async fn create_session( &self, handshake: StreamHandshake, ) -> Result<String, String>
Create a new streaming session
Sourcepub async fn cleanup_stale_sessions(&self) -> usize
pub async fn cleanup_stale_sessions(&self) -> usize
Remove stale sessions that have been inactive for too long
Sourcepub async fn session_count(&self) -> usize
pub async fn session_count(&self) -> usize
Get current session count
Sourcepub async fn process_message(
&self,
session_id: &str,
message: StreamMessage,
memory_system: Arc<RwLock<MemorySystem>>,
) -> ExtractionResult
pub async fn process_message( &self, session_id: &str, message: StreamMessage, memory_system: Arc<RwLock<MemorySystem>>, ) -> ExtractionResult
Process incoming message
Sourcepub async fn close_session(&self, session_id: &str) -> Option<usize>
pub async fn close_session(&self, session_id: &str) -> Option<usize>
Close session and cleanup
Sourcepub async fn inject_context(
&self,
session_id: &str,
content: &str,
memory_system: Arc<RwLock<MemorySystem>>,
graph_memory: Arc<RwLock<GraphMemory>>,
) -> Option<ExtractionResult>
pub async fn inject_context( &self, session_id: &str, content: &str, memory_system: Arc<RwLock<MemorySystem>>, graph_memory: Arc<RwLock<GraphMemory>>, ) -> Option<ExtractionResult>
Get session stats Surface relevant memories for streaming content (context injection)
This is the core of bidirectional streaming: as content flows in, relevant memories are surfaced back to the client.
pub async fn get_session_stats(&self, session_id: &str) -> Option<SessionStats>
Auto Trait Implementations§
impl Freeze for StreamingMemoryExtractor
impl !RefUnwindSafe for StreamingMemoryExtractor
impl Send for StreamingMemoryExtractor
impl Sync for StreamingMemoryExtractor
impl Unpin for StreamingMemoryExtractor
impl UnsafeUnpin for StreamingMemoryExtractor
impl !UnwindSafe for StreamingMemoryExtractor
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
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Converts
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>, which can then be
downcast into Box<dyn ConcreteType> where ConcreteType implements Trait.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Converts
Rc<Trait> (where Trait: Downcast) to Rc<Any>, which can then be further
downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
Converts
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
Converts
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.Source§impl<T> DowncastSend for T
impl<T> DowncastSend for T
Source§impl<T> DowncastSync for T
impl<T> DowncastSync for T
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>
Converts
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>
Converts
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