| """**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:** | |
| .. code-block:: | |
| Chain --> <name>Chain # Examples: LLMChain, MapReduceChain, RouterChain | |
| """ | |
| from typing import Any | |
| from langchain._api import create_importer | |
| _module_lookup = { | |
| "APIChain": "langchain.chains.api.base", | |
| "OpenAPIEndpointChain": "langchain_community.chains.openapi.chain", | |
| "AnalyzeDocumentChain": "langchain.chains.combine_documents.base", | |
| "MapReduceDocumentsChain": "langchain.chains.combine_documents.map_reduce", | |
| "MapRerankDocumentsChain": "langchain.chains.combine_documents.map_rerank", | |
| "ReduceDocumentsChain": "langchain.chains.combine_documents.reduce", | |
| "RefineDocumentsChain": "langchain.chains.combine_documents.refine", | |
| "StuffDocumentsChain": "langchain.chains.combine_documents.stuff", | |
| "ConstitutionalChain": "langchain.chains.constitutional_ai.base", | |
| "ConversationChain": "langchain.chains.conversation.base", | |
| "ChatVectorDBChain": "langchain.chains.conversational_retrieval.base", | |
| "ConversationalRetrievalChain": "langchain.chains.conversational_retrieval.base", | |
| "generate_example": "langchain.chains.example_generator", | |
| "FlareChain": "langchain.chains.flare.base", | |
| "ArangoGraphQAChain": "langchain_community.chains.graph_qa.arangodb", | |
| "GraphQAChain": "langchain_community.chains.graph_qa.base", | |
| "GraphCypherQAChain": "langchain_community.chains.graph_qa.cypher", | |
| "FalkorDBQAChain": "langchain_community.chains.graph_qa.falkordb", | |
| "HugeGraphQAChain": "langchain_community.chains.graph_qa.hugegraph", | |
| "KuzuQAChain": "langchain_community.chains.graph_qa.kuzu", | |
| "NebulaGraphQAChain": "langchain_community.chains.graph_qa.nebulagraph", | |
| "NeptuneOpenCypherQAChain": "langchain_community.chains.graph_qa.neptune_cypher", | |
| "NeptuneSparqlQAChain": "langchain_community.chains.graph_qa.neptune_sparql", | |
| "OntotextGraphDBQAChain": "langchain_community.chains.graph_qa.ontotext_graphdb", | |
| "GraphSparqlQAChain": "langchain_community.chains.graph_qa.sparql", | |
| "create_history_aware_retriever": "langchain.chains.history_aware_retriever", | |
| "HypotheticalDocumentEmbedder": "langchain.chains.hyde.base", | |
| "LLMChain": "langchain.chains.llm", | |
| "LLMCheckerChain": "langchain.chains.llm_checker.base", | |
| "LLMMathChain": "langchain.chains.llm_math.base", | |
| "LLMRequestsChain": "langchain_community.chains.llm_requests", | |
| "LLMSummarizationCheckerChain": "langchain.chains.llm_summarization_checker.base", | |
| "load_chain": "langchain.chains.loading", | |
| "MapReduceChain": "langchain.chains.mapreduce", | |
| "OpenAIModerationChain": "langchain.chains.moderation", | |
| "NatBotChain": "langchain.chains.natbot.base", | |
| "create_citation_fuzzy_match_chain": "langchain.chains.openai_functions", | |
| "create_citation_fuzzy_match_runnable": "langchain.chains.openai_functions", | |
| "create_extraction_chain": "langchain.chains.openai_functions", | |
| "create_extraction_chain_pydantic": "langchain.chains.openai_functions", | |
| "create_qa_with_sources_chain": "langchain.chains.openai_functions", | |
| "create_qa_with_structure_chain": "langchain.chains.openai_functions", | |
| "create_tagging_chain": "langchain.chains.openai_functions", | |
| "create_tagging_chain_pydantic": "langchain.chains.openai_functions", | |
| "QAGenerationChain": "langchain.chains.qa_generation.base", | |
| "QAWithSourcesChain": "langchain.chains.qa_with_sources.base", | |
| "RetrievalQAWithSourcesChain": "langchain.chains.qa_with_sources.retrieval", | |
| "VectorDBQAWithSourcesChain": "langchain.chains.qa_with_sources.vector_db", | |
| "create_retrieval_chain": "langchain.chains.retrieval", | |
| "RetrievalQA": "langchain.chains.retrieval_qa.base", | |
| "VectorDBQA": "langchain.chains.retrieval_qa.base", | |
| "LLMRouterChain": "langchain.chains.router", | |
| "MultiPromptChain": "langchain.chains.router", | |
| "MultiRetrievalQAChain": "langchain.chains.router", | |
| "MultiRouteChain": "langchain.chains.router", | |
| "RouterChain": "langchain.chains.router", | |
| "SequentialChain": "langchain.chains.sequential", | |
| "SimpleSequentialChain": "langchain.chains.sequential", | |
| "create_sql_query_chain": "langchain.chains.sql_database.query", | |
| "create_structured_output_runnable": "langchain.chains.structured_output", | |
| "load_summarize_chain": "langchain.chains.summarize", | |
| "TransformChain": "langchain.chains.transform", | |
| } | |
| importer = create_importer(__package__, module_lookup=_module_lookup) | |
| def __getattr__(name: str) -> Any: | |
| return importer(name) | |
| __all__ = list(_module_lookup.keys()) | |