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§
Source§impl LlmExtractor
impl LlmExtractor
Sourcepub fn new(
name: impl Into<String>,
llm: Arc<dyn BaseLlm>,
prompt: impl Into<String>,
window_size: usize,
) -> Self
pub fn new( name: impl Into<String>, llm: Arc<dyn BaseLlm>, prompt: impl Into<String>, window_size: usize, ) -> Self
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
Sourcepub fn with_min_words(self, n: usize) -> Self
pub fn with_min_words(self, n: usize) -> Self
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.
Sourcepub fn with_schema(self, schema: Value) -> Self
pub fn with_schema(self, schema: Value) -> Self
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.
Sourcepub fn with_trigger(self, trigger: ExtractionTrigger) -> Self
pub fn with_trigger(self, trigger: ExtractionTrigger) -> Self
Set the trigger mode for this extractor.
Sourcepub fn with_promotions(self, rules: Vec<FieldPromotion>) -> Self
pub fn with_promotions(self, rules: Vec<FieldPromotion>) -> Self
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§
Source§impl TurnExtractor for LlmExtractor
impl TurnExtractor for LlmExtractor
Source§fn window_size(&self) -> usize
fn window_size(&self) -> usize
How many recent turns this extractor needs.
Source§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
Source§fn trigger(&self) -> ExtractionTrigger
fn trigger(&self) -> ExtractionTrigger
The trigger mode for this extractor. Read more
Source§fn promotion_rules(&self) -> &[FieldPromotion]
fn promotion_rules(&self) -> &[FieldPromotion]
Field promotion rules for this extractor. Read more
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