pub struct ChatSession {
pub id: String,
pub messages: Vec<Message>,
pub created_at: DateTime<Utc>,
pub last_activity: DateTime<Utc>,
pub metadata: HashMap<String, Value>,
pub state: SessionState,
pub store: Arc<dyn Store>,
pub metrics: SessionMetrics,
}Expand description
Chat session managing a single conversation
Fields§
§id: StringSession identifier
messages: Vec<Message>Messages in this session
created_at: DateTime<Utc>Session creation time
last_activity: DateTime<Utc>Last activity time
metadata: HashMap<String, Value>Session metadata
state: SessionStateSession state
store: Arc<dyn Store>Reference to the RDF store
metrics: SessionMetricsSession metrics
Implementations§
Source§impl ChatSession
impl ChatSession
Sourcepub fn add_message(&mut self, message: Message) -> Result<()>
pub fn add_message(&mut self, message: Message) -> Result<()>
Add a message to the session
Sourcepub fn get_messages(&self) -> &[Message]
pub fn get_messages(&self) -> &[Message]
Get all messages in the session
Sourcepub fn get_recent_messages(&self, count: usize) -> &[Message]
pub fn get_recent_messages(&self, count: usize) -> &[Message]
Get recent messages (last N)
Sourcepub fn get_statistics(&self) -> SessionStatistics
pub fn get_statistics(&self) -> SessionStatistics
Get statistics for this session
Sourcepub fn should_expire(&self, timeout: Duration) -> bool
pub fn should_expire(&self, timeout: Duration) -> bool
Check if session should expire
Sourcepub fn export_data(&self) -> SessionData
pub fn export_data(&self) -> SessionData
Export session data for persistence
Sourcepub fn to_data(&self) -> SessionData
pub fn to_data(&self) -> SessionData
Convert session to data format for persistence
Sourcepub fn from_data(data: SessionData, store: Arc<dyn Store>) -> Self
pub fn from_data(data: SessionData, store: Arc<dyn Store>) -> Self
Create session from data
Sourcepub fn record_rag_retrieval(&mut self)
pub fn record_rag_retrieval(&mut self)
Update a metric value
pub fn record_sparql_query(&mut self)
pub fn record_error(&mut self)
pub fn record_response_time(&mut self, response_time_ms: u64)
Auto Trait Implementations§
impl Freeze for ChatSession
impl !RefUnwindSafe for ChatSession
impl Send for ChatSession
impl Sync for ChatSession
impl Unpin for ChatSession
impl UnsafeUnpin for ChatSession
impl !UnwindSafe for ChatSession
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> 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 moreSource§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
Source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
Source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
The inverse inclusion map: attempts to construct
self from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
Checks if
self is actually part of its subset T (and can be converted to it).Source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
Use with care! Same as
self.to_subset but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
The inclusion map: converts
self to the equivalent element of its superset.