Skip to main content

ContextualEnhancer

Struct ContextualEnhancer 

Source
pub struct ContextualEnhancer { /* private fields */ }
Expand description

Contextual Retrieval enhancer (index-time transform).

L is any BaseChatModel; a cheap small model is recommended (one call per chunk). Enhancement failures are logged and degrade to the original content — see the module docs.

Implementations§

Source§

impl ContextualEnhancer

Source

pub fn new<L>(llm: L) -> Self
where L: BaseChatModel + Send + Sync + 'static, L::Error: Into<ProviderError>,

Creates an enhancer from any BaseChatModel.

Source

pub fn new_arc( llm: Arc<dyn BaseChatModel<Error = ProviderError> + Send + Sync>, ) -> Self

Builds from an already-wrapped Arc<dyn BaseChatModel<Error = ProviderError>>.

Source

pub fn with_config(self, config: ContextualConfig) -> Self

Sets the configuration.

Source

pub fn with_max_concurrency(self, max_concurrency: usize) -> Self

Sets the max in-flight LLM calls.

Source

pub async fn generate_context( &self, chunk: &str, ) -> Result<String, ContextualError>

Generates the situating context for one chunk (raw LLM access).

Source

pub async fn enhance_document( &self, doc: &Document, ) -> Result<Document, ContextualError>

Enhances one document: returns a copy whose content is context + "\n" + original and whose metadata carries the context under CONTEXTUAL_METADATA_KEY.

Errors surface to the caller (use Self::enhance_documents for the fail-open batch path).

Source

pub async fn enhance_documents(&self, docs: &[Document]) -> Vec<Document>

Batch enhancement with bounded concurrency and fail-open semantics.

Each chunk is enhanced concurrently (up to max_concurrency in flight); a chunk whose context generation fails keeps its original content (a warning is logged) — indexing never blocks on the enhancement. Idempotent: chunks already carrying CONTEXTUAL_METADATA_KEY are passed through untouched, so re-running over an indexed corpus is a no-op.

Trait Implementations§

Source§

impl Debug for ContextualEnhancer

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> PolicyExt for T
where T: ?Sized,

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow only if self and other return Action::Follow. Read more
Source§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow if either self or other returns Action::Follow. Read more
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more