pub struct ManagedConversation { /* private fields */ }Expand description
A managed conversation that tracks messages and their metadata.
Implementations§
Source§impl ManagedConversation
impl ManagedConversation
Sourcepub fn with_system(system: impl Into<String>) -> Self
pub fn with_system(system: impl Into<String>) -> Self
Create a conversation with a system message.
Sourcepub fn set_system(&mut self, content: impl Into<String>)
pub fn set_system(&mut self, content: impl Into<String>)
Set or replace the system message.
Sourcepub fn system_message(&self) -> Option<&Message>
pub fn system_message(&self) -> Option<&Message>
Get the system message.
Sourcepub fn add_user_message(&mut self, content: impl Into<String>)
pub fn add_user_message(&mut self, content: impl Into<String>)
Add a user message.
Sourcepub fn add_assistant_message(&mut self, content: impl Into<String>)
pub fn add_assistant_message(&mut self, content: impl Into<String>)
Add an assistant message.
Sourcepub fn add_message(&mut self, message: Message)
pub fn add_message(&mut self, message: Message)
Add any message.
Sourcepub fn add_messages(&mut self, messages: impl IntoIterator<Item = Message>)
pub fn add_messages(&mut self, messages: impl IntoIterator<Item = Message>)
Add multiple messages.
Sourcepub fn messages(&self) -> Vec<Message>
pub fn messages(&self) -> Vec<Message>
Get all messages as a vector (including system message).
Sourcepub fn tracked_messages(&self) -> &[TrackedMessage]
pub fn tracked_messages(&self) -> &[TrackedMessage]
Get tracked messages (excluding system).
Sourcepub fn last_n_messages(&self, n: usize) -> Vec<Message>
pub fn last_n_messages(&self, n: usize) -> Vec<Message>
Get the last N messages (excluding system).
Sourcepub fn last_message(&self) -> Option<&Message>
pub fn last_message(&self) -> Option<&Message>
Get the last message.
Sourcepub fn estimated_tokens(&self) -> usize
pub fn estimated_tokens(&self) -> usize
Estimate total token count.
Sourcepub fn clear(&mut self, keep_system: bool)
pub fn clear(&mut self, keep_system: bool)
Clear all messages (optionally keeping system message).
Sourcepub fn remove_before(&mut self, id: usize)
pub fn remove_before(&mut self, id: usize)
Remove messages older than a given ID.
Sourcepub fn remove_first(&mut self, n: usize)
pub fn remove_first(&mut self, n: usize)
Remove the first N messages.
Sourcepub fn get_metadata(&self, key: &str) -> Option<&str>
pub fn get_metadata(&self, key: &str) -> Option<&str>
Get metadata.
Sourcepub fn find_messages(&self, text: &str) -> Vec<&TrackedMessage>
pub fn find_messages(&self, text: &str) -> Vec<&TrackedMessage>
Find messages containing text.
Sourcepub fn messages_by_role(&self, role: &str) -> Vec<&TrackedMessage>
pub fn messages_by_role(&self, role: &str) -> Vec<&TrackedMessage>
Get messages by role.
Trait Implementations§
Source§impl Clone for ManagedConversation
impl Clone for ManagedConversation
Source§fn clone(&self) -> ManagedConversation
fn clone(&self) -> ManagedConversation
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for ManagedConversation
impl Debug for ManagedConversation
Source§impl Default for ManagedConversation
impl Default for ManagedConversation
Source§impl<'de> Deserialize<'de> for ManagedConversation
impl<'de> Deserialize<'de> for ManagedConversation
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Auto Trait Implementations§
impl Freeze for ManagedConversation
impl RefUnwindSafe for ManagedConversation
impl Send for ManagedConversation
impl Sync for ManagedConversation
impl Unpin for ManagedConversation
impl UnsafeUnpin for ManagedConversation
impl UnwindSafe for ManagedConversation
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