pub struct FileHistoryProvider { /* private fields */ }Expand description
A HistoryProvider that persists to a JSON file on disk, loading any
existing history from path on construction and rewriting the whole file
after every successful run.
Implementations§
Source§impl FileHistoryProvider
impl FileHistoryProvider
Sourcepub fn new(path: impl Into<PathBuf>) -> Result<FileHistoryProvider, Error>
pub fn new(path: impl Into<PathBuf>) -> Result<FileHistoryProvider, Error>
Open (or create) a file-backed history provider at path. A missing
or empty file starts with no history; an existing file is parsed
eagerly, so a malformed file fails the constructor rather than
silently discarding history.
Sourcepub fn list_messages(&self) -> Vec<Message>
pub fn list_messages(&self) -> Vec<Message>
The stored messages, in chronological order.
Trait Implementations§
Source§impl Clone for FileHistoryProvider
impl Clone for FileHistoryProvider
Source§fn clone(&self) -> FileHistoryProvider
fn clone(&self) -> FileHistoryProvider
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 ContextProvider for FileHistoryProvider
impl ContextProvider for FileHistoryProvider
Source§fn before_run<'life0, 'life1, 'async_trait>(
&'life0 self,
ctx: &'life1 mut SessionContext,
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
FileHistoryProvider: 'async_trait,
fn before_run<'life0, 'life1, 'async_trait>(
&'life0 self,
ctx: &'life1 mut SessionContext,
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
FileHistoryProvider: 'async_trait,
Called before the model is invoked; mutate ctx to inject instructions,
messages, and/or tools. Read ctx.input_messages / ctx.session_id.
Source§fn after_run<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
request_messages: &'life1 [Message],
response_messages: &'life2 [Message],
error: Option<&'life3 Error>,
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
FileHistoryProvider: 'async_trait,
fn after_run<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
request_messages: &'life1 [Message],
response_messages: &'life2 [Message],
error: Option<&'life3 Error>,
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
FileHistoryProvider: 'async_trait,
Called after an invocation completes, on BOTH success and failure.
On success, error is None and response_messages holds the output.
On failure, error is Some and response_messages is empty.
Source§fn is_history_provider(&self) -> bool
fn is_history_provider(&self) -> bool
Whether this provider manages conversation history (a
HistoryProvider). Agent
and WorkflowAgent use this to
detect an already-attached history provider among a session’s
context_providers and avoid auto-attaching a redundant
InMemoryHistoryProvider.
Defaults to false; history providers override it to true.impl HistoryProvider for FileHistoryProvider
Auto Trait Implementations§
impl Freeze for FileHistoryProvider
impl RefUnwindSafe for FileHistoryProvider
impl Send for FileHistoryProvider
impl Sync for FileHistoryProvider
impl Unpin for FileHistoryProvider
impl UnsafeUnpin for FileHistoryProvider
impl UnwindSafe for FileHistoryProvider
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