Skip to main content

Crate lc_chains

Crate lc_chains 

Source
Expand description

Chain system for composing operations.

Chain is LangChain’s core abstraction, representing a sequence of operations.

§Core Concepts

  • BaseChain: Base trait for chains.
  • LLMChain: Most basic chain (Prompt + LLM).
  • SequentialChain: Execute multiple chains sequentially.

§Example

use lc_chains::{LLMChain, SequentialChain};

let chain1 = LLMChain::new(llm.clone(), "Generate a word about {topic}");
let chain2 = LLMChain::new(llm, "Make a sentence with word: {word}");

let seq_chain = SequentialChain::new()
    .add_chain(Arc::new(chain1), vec!["topic"], vec!["word"])
    .add_chain(Arc::new(chain2), vec!["word"], vec!["sentence"]);

let inputs = HashMap::from([("topic".into(), "programming".into())]);
let result = seq_chain.invoke(inputs).await?;

Re-exports§

pub use base::BaseChain;
pub use base::ChainError;
pub use base::ChainResult;
pub use base::ChainStream;
pub use base::StreamToken;
pub use conversation_chain::ConversationChain;
pub use conversation_chain::ConversationChainBuilder;
pub use conversation_retrieval::ConversationRetrievalChain;
pub use document_chains::MapReduceDocumentsChain;
pub use document_chains::MapRerankDocumentsChain;
pub use document_chains::RefineDocumentsChain;
pub use document_chains::StuffDocumentsChain;
pub use llm_chain::LLMChain;
pub use llm_chain::LLMChainBuilder;
pub use retrieval_qa::RetrievalQA;
pub use router_chain::LLMRouterChain;
pub use router_chain::RouteDestination;
pub use router_chain::RouterChain;
pub use sequential_chain::SequentialChain;

Modules§

base
Chain base trait.
conversation_chain
Conversation Chain
conversation_retrieval
ConversationRetrieval Chain
document_chains
Document processing chains.
llm_chain
LLM Chain
retrieval_qa
RetrievalQA Chain
router_chain
Router Chain
sequential_chain
Sequential Chain