Skip to main content

RefineDocumentsChain

Struct RefineDocumentsChain 

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

RefineDocumentsChain

Iteratively refines the answer document by document. Generates an initial answer from the first document, then refines with each subsequent document.

Implementations§

Source§

impl RefineDocumentsChain

Source

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

Create a new RefineDocumentsChain with the given LLM.

Source

pub fn with_initial_prompt(self, template: impl Into<String>) -> Self

Set the initial prompt template used for the first document.

Source

pub fn with_refine_prompt(self, template: impl Into<String>) -> Self

Set the refine prompt template used for subsequent documents.

Source

pub fn with_document_variable(self, name: impl Into<String>) -> Self

Set the document variable name used in the prompts.

Source

pub fn with_input_key(self, key: impl Into<String>) -> Self

Set the input key.

Source

pub fn with_output_key(self, key: impl Into<String>) -> Self

Set the output key.

Source

pub fn with_name(self, name: impl Into<String>) -> Self

Set the chain name.

Source

pub fn with_verbose(self, verbose: bool) -> Self

Set verbose mode.

Source

pub fn build_initial_prompt(&self, context: &str, input: &str) -> String

Build the initial prompt from the first document’s content and input.

Source

pub fn build_refine_prompt( &self, context: &str, input: &str, existing_answer: &str, ) -> String

Build the refine prompt from the new context, input, and existing answer.

Source

pub async fn invoke_with_documents( &self, documents: Vec<Document>, input: &str, ) -> Result<String, ChainError>

Invoke with documents and input directly (iterative refinement).

Trait Implementations§

Source§

impl BaseChain for RefineDocumentsChain

Source§

fn stream<'life0, 'async_trait>( &'life0 self, inputs: HashMap<String, Value>, ) -> Pin<Box<dyn Future<Output = Result<ChainStream, ChainError>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Stream execution for RefineDocumentsChain.

Runs the initial + all intermediate refine steps via invoke (since their output feeds the next step), then streams the final refine step token by token via stream_chat. With a single document there is no final refine step — the initial answer is emitted directly (P2-4), so the LLM is not re-called on the identical initial prompt.

Source§

fn input_keys(&self) -> Vec<&str>

Get input keys.
Source§

fn output_keys(&self) -> Vec<&str>

Get output keys.
Source§

fn invoke<'life0, 'async_trait>( &'life0 self, inputs: HashMap<String, Value>, ) -> Pin<Box<dyn Future<Output = Result<ChainResult, ChainError>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Execute the Chain. Read more
Source§

fn name(&self) -> &str

Get Chain name.
Source§

fn invoke_with_config<'life0, 'async_trait>( &'life0 self, inputs: HashMap<String, Value>, config: Option<RunnableConfig>, ) -> Pin<Box<dyn Future<Output = Result<ChainResult, ChainError>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Execute the Chain with a RunnableConfig. Read more
Source§

fn stream_with_config<'life0, 'async_trait>( &'life0 self, inputs: HashMap<String, Value>, config: Option<RunnableConfig>, ) -> Pin<Box<dyn Future<Output = Result<ChainStream, ChainError>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Stream execute the Chain with a RunnableConfig. Read more
Source§

fn validate_inputs( &self, inputs: &HashMap<String, Value>, ) -> Result<(), ChainError>

Validate inputs.

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, <T as TryFrom<U>>::Error>

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