pub struct Extractor<M, T>where
M: CompletionModel,
T: JsonSchema + for<'a> Deserialize<'a> + WasmCompatSend + WasmCompatSync,{ /* private fields */ }Expand description
Extractor for structured data from text
Implementations§
Source§impl<M, T> Extractor<M, T>where
M: CompletionModel,
T: JsonSchema + for<'a> Deserialize<'a> + WasmCompatSend + WasmCompatSync,
impl<M, T> Extractor<M, T>where
M: CompletionModel,
T: JsonSchema + for<'a> Deserialize<'a> + WasmCompatSend + WasmCompatSync,
Sourcepub async fn extract(
&self,
text: impl Into<Message> + WasmCompatSend,
) -> Result<T, ExtractionError>
pub async fn extract( &self, text: impl Into<Message> + WasmCompatSend, ) -> Result<T, ExtractionError>
Attempts to extract data from the given text with a number of retries.
The function will retry the extraction if the initial attempt fails or
if the model does not call the submit tool.
The number of retries is determined by the retries field on the Extractor struct.
Sourcepub async fn extract_with_chat_history(
&self,
text: impl Into<Message> + WasmCompatSend,
chat_history: Vec<Message>,
) -> Result<T, ExtractionError>
pub async fn extract_with_chat_history( &self, text: impl Into<Message> + WasmCompatSend, chat_history: Vec<Message>, ) -> Result<T, ExtractionError>
Attempts to extract data from the given text with a number of retries.
The function will retry the extraction if the initial attempt fails or
if the model does not call the submit tool.
The number of retries is determined by the retries field on the Extractor struct.
Sourcepub async fn extract_with_usage(
&self,
text: impl Into<Message> + WasmCompatSend,
) -> Result<ExtractionResponse<T>, ExtractionError>
pub async fn extract_with_usage( &self, text: impl Into<Message> + WasmCompatSend, ) -> Result<ExtractionResponse<T>, ExtractionError>
Attempts to extract data from the given text with a number of retries, returning both the extracted data and accumulated token usage.
The function will retry the extraction if the initial attempt fails or
if the model does not call the submit tool.
The number of retries is determined by the retries field on the Extractor struct.
Usage accumulates across all retry attempts, providing the complete cost picture including failed attempts.
Sourcepub async fn extract_with_chat_history_with_usage(
&self,
text: impl Into<Message> + WasmCompatSend,
chat_history: Vec<Message>,
) -> Result<ExtractionResponse<T>, ExtractionError>
pub async fn extract_with_chat_history_with_usage( &self, text: impl Into<Message> + WasmCompatSend, chat_history: Vec<Message>, ) -> Result<ExtractionResponse<T>, ExtractionError>
Attempts to extract data from the given text with a number of retries, providing chat history context, and returning both the extracted data and accumulated token usage.
The function will retry the extraction if the initial attempt fails or
if the model does not call the submit tool.
The number of retries is determined by the retries field on the Extractor struct.
Usage accumulates across all retry attempts, providing the complete cost picture including failed attempts.
pub async fn get_inner(&self) -> &Agent<M>
pub async fn into_inner(self) -> Agent<M>
Auto Trait Implementations§
impl<M, T> Freeze for Extractor<M, T>
impl<M, T> !RefUnwindSafe for Extractor<M, T>
impl<M, T> Send for Extractor<M, T>
impl<M, T> Sync for Extractor<M, T>
impl<M, T> Unpin for Extractor<M, T>where
T: Unpin,
impl<M, T> UnsafeUnpin for Extractor<M, T>
impl<M, T> !UnwindSafe for Extractor<M, T>
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
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> 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>
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>
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