Struct LlmExtractor
pub struct LlmExtractor { /* private fields */ }Expand description
LLM-backed turn extractor that sends transcript windows to an OOB LLM with a structured extraction prompt.
Implementations§
§impl LlmExtractor
impl LlmExtractor
pub fn new(
name: impl Into<String>,
llm: Arc<dyn BaseLlm>,
prompt: impl Into<String>,
window_size: usize,
) -> LlmExtractor
pub fn new( name: impl Into<String>, llm: Arc<dyn BaseLlm>, prompt: impl Into<String>, window_size: usize, ) -> LlmExtractor
Create a new LLM-backed extractor.
name: key for storing results in Statellm: the out-of-band LLM to use for extractionprompt: system instruction describing what to extractwindow_size: how many recent turns to include
pub fn with_min_words(self, n: usize) -> LlmExtractor
pub fn with_min_words(self, n: usize) -> LlmExtractor
Set the minimum word count in the last user utterance to trigger extraction.
Turns where the user said fewer than n words will skip the LLM call.
Useful for filtering out “uh huh”, “ok”, “yes” style responses.
pub fn with_schema(self, schema: Value) -> LlmExtractor
pub fn with_schema(self, schema: Value) -> LlmExtractor
Set a JSON Schema for structured output.
When set, the schema is included in the prompt to guide the LLM toward producing valid JSON matching the schema.
pub fn with_trigger(self, trigger: ExtractionTrigger) -> LlmExtractor
pub fn with_trigger(self, trigger: ExtractionTrigger) -> LlmExtractor
Set the trigger mode for this extractor.
pub fn with_promotions(self, rules: Vec<FieldPromotion>) -> LlmExtractor
pub fn with_promotions(self, rules: Vec<FieldPromotion>) -> LlmExtractor
Set explicit field promotion rules.
Once promotion rules are present, top-level fields are no longer automatically flattened into state; only accepted rules promote.
Trait Implementations§
§impl TurnExtractor for LlmExtractor
impl TurnExtractor for LlmExtractor
§fn window_size(&self) -> usize
fn window_size(&self) -> usize
How many recent turns this extractor needs.
§fn should_extract(&self, window: &[TranscriptTurn]) -> bool
fn should_extract(&self, window: &[TranscriptTurn]) -> bool
Whether this extractor should run for the current turn. Read more
§fn trigger(&self) -> ExtractionTrigger
fn trigger(&self) -> ExtractionTrigger
The trigger mode for this extractor. Read more
§fn promotion_rules(&self) -> &[FieldPromotion]
fn promotion_rules(&self) -> &[FieldPromotion]
Field promotion rules for this extractor. Read more
§fn extract<'life0, 'life1, 'async_trait>(
&'life0 self,
window: &'life1 [TranscriptTurn],
) -> Pin<Box<dyn Future<Output = Result<Value, LlmError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
LlmExtractor: 'async_trait,
fn extract<'life0, 'life1, 'async_trait>(
&'life0 self,
window: &'life1 [TranscriptTurn],
) -> Pin<Box<dyn Future<Output = Result<Value, LlmError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
LlmExtractor: 'async_trait,
Extract structured data from the transcript window.
Auto Trait Implementations§
impl Freeze for LlmExtractor
impl !RefUnwindSafe for LlmExtractor
impl Send for LlmExtractor
impl Sync for LlmExtractor
impl Unpin for LlmExtractor
impl !UnwindSafe for LlmExtractor
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