chains#

Chains are easily reusable components linked together.

Chains encode a sequence of calls to components like models, document retrievers, other Chains, etc., and provide a simple interface to this sequence.

The Chain interface makes it easy to create apps that are:

  • Stateful: add Memory to any Chain to give it state,

  • Observable: pass Callbacks to a Chain to execute additional functionality, like logging, outside the main sequence of component calls,

  • Composable: combine Chains with other components, including other Chains.

Class hierarchy:

Chain --> <name>Chain  # Examples: LLMChain, MapReduceChain, RouterChain

Classes

chains.api.base.APIChain

Chain that makes API calls and summarizes the responses to answer a question.

chains.base.Chain

Abstract base class for creating structured sequences of calls to components.

chains.combine_documents.base.BaseCombineDocumentsChain

Base interface for chains combining documents.

chains.combine_documents.map_reduce.MapReduceDocumentsChain

Combining documents by mapping a chain over them, then combining results.

chains.combine_documents.map_rerank.MapRerankDocumentsChain

Combining documents by mapping a chain over them, then reranking results.

chains.combine_documents.reduce.AsyncCombineDocsProtocol(...)

Interface for the combine_docs method.

chains.combine_documents.reduce.CombineDocsProtocol(...)

Interface for the combine_docs method.

chains.combine_documents.reduce.ReduceDocumentsChain

Combine documents by recursively reducing them.

chains.combine_documents.refine.RefineDocumentsChain

Combine documents by doing a first pass and then refining on more documents.

chains.combine_documents.stuff.StuffDocumentsChain

Chain that combines documents by stuffing into context.

chains.constitutional_ai.base.ConstitutionalChain

Chain for applying constitutional principles.

chains.constitutional_ai.models.ConstitutionalPrinciple

Class for a constitutional principle.

chains.conversational_retrieval.base.BaseConversationalRetrievalChain

Chain for chatting with an index.

chains.conversational_retrieval.base.ChatVectorDBChain

Chain for chatting with a vector database.

chains.conversational_retrieval.base.InputType

Input type for ConversationalRetrievalChain.

chains.elasticsearch_database.base.ElasticsearchDatabaseChain

Chain for interacting with Elasticsearch Database.

chains.flare.base.FlareChain

Chain that combines a retriever, a question generator, and a response generator.

chains.flare.base.QuestionGeneratorChain

Chain that generates questions from uncertain spans.

chains.flare.prompts.FinishedOutputParser

Output parser that checks if the output is finished.

chains.hyde.base.HypotheticalDocumentEmbedder

Generate hypothetical document for query, and then embed that.

chains.llm_checker.base.LLMCheckerChain

Chain for question-answering with self-verification.

chains.llm_math.base.LLMMathChain

Chain that interprets a prompt and executes python code to do math.

chains.llm_summarization_checker.base.LLMSummarizationCheckerChain

Chain for question-answering with self-verification.

chains.mapreduce.MapReduceChain

Map-reduce chain.

chains.moderation.OpenAIModerationChain

Pass input through a moderation endpoint.

chains.natbot.base.NatBotChain

Implement an LLM driven browser.

chains.natbot.crawler.Crawler()

A crawler for web pages.

chains.natbot.crawler.ElementInViewPort

A typed dictionary containing information about elements in the viewport.

chains.openai_functions.citation_fuzzy_match.FactWithEvidence

Class representing a single statement.

chains.openai_functions.citation_fuzzy_match.QuestionAnswer

A question and its answer as a list of facts each one should have a source.

chains.openai_functions.openapi.SimpleRequestChain

Chain for making a simple request to an API endpoint.

chains.openai_functions.qa_with_structure.AnswerWithSources

An answer to the question, with sources.

chains.prompt_selector.BasePromptSelector

Base class for prompt selectors.

chains.prompt_selector.ConditionalPromptSelector

Prompt collection that goes through conditionals.

chains.qa_with_sources.base.BaseQAWithSourcesChain

Question answering chain with sources over documents.

chains.qa_with_sources.base.QAWithSourcesChain

Question answering with sources over documents.

chains.qa_with_sources.loading.LoadingCallable(...)

Interface for loading the combine documents chain.

chains.qa_with_sources.retrieval.RetrievalQAWithSourcesChain

Question-answering with sources over an index.

chains.qa_with_sources.vector_db.VectorDBQAWithSourcesChain

Question-answering with sources over a vector database.

chains.query_constructor.base.StructuredQueryOutputParser

Output parser that parses a structured query.

chains.query_constructor.parser.ISO8601Date

A date in ISO 8601 format (YYYY-MM-DD).

chains.query_constructor.schema.AttributeInfo

Information about a data source attribute.

chains.question_answering.chain.LoadingCallable(...)

Interface for loading the combine documents chain.

chains.retrieval_qa.base.BaseRetrievalQA

Base class for question-answering chains.

chains.retrieval_qa.base.VectorDBQA

Chain for question-answering against a vector database.

chains.router.base.MultiRouteChain

Use a single chain to route an input to one of multiple candidate chains.

chains.router.base.Route(destination, ...)

Create new instance of Route(destination, next_inputs)

chains.router.base.RouterChain

Chain that outputs the name of a destination chain and the inputs to it.

chains.router.embedding_router.EmbeddingRouterChain

Chain that uses embeddings to route between options.

chains.router.llm_router.LLMRouterChain

A router chain that uses an LLM chain to perform routing.

chains.router.llm_router.RouterOutputParser

Parser for output of router chain in the multi-prompt chain.

chains.router.multi_prompt.MultiPromptChain

A multi-route chain that uses an LLM router chain to choose amongst prompts.

chains.router.multi_retrieval_qa.MultiRetrievalQAChain

A multi-route chain that uses an LLM router chain to choose amongst retrieval qa chains.

chains.sequential.SequentialChain

Chain where the outputs of one chain feed directly into next.

chains.sequential.SimpleSequentialChain

Simple chain where the outputs of one step feed directly into next.

chains.sql_database.query.SQLInput

Input for a SQL Chain.

chains.sql_database.query.SQLInputWithTables

Input for a SQL Chain.

chains.summarize.chain.LoadingCallable(...)

Interface for loading the combine documents chain.

chains.transform.TransformChain

Chain that transforms the chain output.

Functions

chains.combine_documents.reduce.acollapse_docs(...)

Execute a collapse function on a set of documents and merge their metadatas.

chains.combine_documents.reduce.collapse_docs(...)

Execute a collapse function on a set of documents and merge their metadatas.

chains.combine_documents.reduce.split_list_of_docs(...)

Split Documents into subsets that each meet a cumulative length constraint.

chains.combine_documents.stuff.create_stuff_documents_chain(...)

Create a chain for passing a list of Documents to a model.

chains.example_generator.generate_example(...)

Return another example given a list of examples for a prompt.

chains.history_aware_retriever.create_history_aware_retriever(...)

Create a chain that takes conversation history and returns documents.

chains.loading.load_chain(path, **kwargs)

Unified method for loading a chain from LangChainHub or local fs.

chains.loading.load_chain_from_config(...)

Load chain from Config Dict.

chains.openai_functions.citation_fuzzy_match.create_citation_fuzzy_match_chain(llm)

Create a citation fuzzy match chain.

chains.openai_functions.openapi.get_openapi_chain(spec)

Create a chain for querying an API from a OpenAPI spec.

chains.openai_functions.openapi.openapi_spec_to_openai_fn(spec)

Convert a valid OpenAPI spec to the JSON Schema format expected for OpenAI

chains.openai_functions.qa_with_structure.create_qa_with_sources_chain(llm)

Create a question answering chain that returns an answer with sources.

chains.openai_functions.qa_with_structure.create_qa_with_structure_chain(...)

Create a question answering chain that returns an answer with sources

chains.openai_functions.tagging.create_tagging_chain(...)

Create a chain that extracts information from a passage

chains.openai_functions.tagging.create_tagging_chain_pydantic(...)

Create a chain that extracts information from a passage

chains.openai_functions.utils.get_llm_kwargs(...)

Return the kwargs for the LLMChain constructor.

chains.prompt_selector.is_chat_model(llm)

Check if the language model is a chat model.

chains.prompt_selector.is_llm(llm)

Check if the language model is a LLM.

chains.qa_with_sources.loading.load_qa_with_sources_chain(llm)

Load a question answering with sources chain.

chains.query_constructor.base.construct_examples(...)

Construct examples from input-output pairs.

chains.query_constructor.base.fix_filter_directive(...)

Fix invalid filter directive.

chains.query_constructor.base.get_query_constructor_prompt(...)

Create query construction prompt.

chains.query_constructor.base.load_query_constructor_chain(...)

Load a query constructor chain.

chains.query_constructor.base.load_query_constructor_runnable(...)

Load a query constructor runnable chain.

chains.query_constructor.parser.get_parser([...])

Return a parser for the query language.

chains.query_constructor.parser.v_args(...)

Dummy decorator for when lark is not installed.

chains.question_answering.chain.load_qa_chain(llm)

Load question answering chain.

chains.retrieval.create_retrieval_chain(...)

Create retrieval chain that retrieves documents and then passes them on.

chains.sql_database.query.create_sql_query_chain(llm, db)

Create a chain that generates SQL queries.

chains.structured_output.base.get_openai_output_parser(...)

Get the appropriate function output parser given the user functions.

chains.summarize.chain.load_summarize_chain(llm)

Load summarizing chain.

Deprecated classes

chains.combine_documents.base.AnalyzeDocumentChain

chains.conversation.base.ConversationChain

chains.conversational_retrieval.base.ConversationalRetrievalChain

chains.llm.LLMChain

chains.qa_generation.base.QAGenerationChain

chains.retrieval_qa.base.RetrievalQA

Deprecated functions

chains.openai_functions.base.create_openai_fn_chain(...)

chains.openai_functions.base.create_structured_output_chain(...)

chains.openai_functions.extraction.create_extraction_chain(...)

chains.openai_functions.extraction.create_extraction_chain_pydantic(...)

chains.openai_tools.extraction.create_extraction_chain_pydantic(...)

chains.structured_output.base.create_openai_fn_runnable(...)

chains.structured_output.base.create_structured_output_runnable(...)