langchain[patch]: getattr import from langchain.chains (#18160)

This commit is contained in:
Erick Friis 2024-03-08 10:36:14 -08:00 committed by GitHub
parent ff70cc4e80
commit a88f62ec3c
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -17,135 +17,79 @@ The Chain interface makes it easy to create apps that are:
Chain --> <name>Chain # Examples: LLMChain, MapReduceChain, RouterChain Chain --> <name>Chain # Examples: LLMChain, MapReduceChain, RouterChain
""" """
from langchain.chains.api.base import APIChain import importlib
from langchain.chains.api.openapi.chain import OpenAPIEndpointChain from typing import Any
from langchain.chains.combine_documents.base import AnalyzeDocumentChain
from langchain.chains.combine_documents.map_reduce import MapReduceDocumentsChain
from langchain.chains.combine_documents.map_rerank import MapRerankDocumentsChain
from langchain.chains.combine_documents.reduce import ReduceDocumentsChain
from langchain.chains.combine_documents.refine import RefineDocumentsChain
from langchain.chains.combine_documents.stuff import StuffDocumentsChain
from langchain.chains.constitutional_ai.base import ConstitutionalChain
from langchain.chains.conversation.base import ConversationChain
from langchain.chains.conversational_retrieval.base import (
ChatVectorDBChain,
ConversationalRetrievalChain,
)
from langchain.chains.example_generator import generate_example
from langchain.chains.flare.base import FlareChain
from langchain.chains.graph_qa.arangodb import ArangoGraphQAChain
from langchain.chains.graph_qa.base import GraphQAChain
from langchain.chains.graph_qa.cypher import GraphCypherQAChain
from langchain.chains.graph_qa.falkordb import FalkorDBQAChain
from langchain.chains.graph_qa.hugegraph import HugeGraphQAChain
from langchain.chains.graph_qa.kuzu import KuzuQAChain
from langchain.chains.graph_qa.nebulagraph import NebulaGraphQAChain
from langchain.chains.graph_qa.neptune_cypher import NeptuneOpenCypherQAChain
from langchain.chains.graph_qa.neptune_sparql import NeptuneSparqlQAChain
from langchain.chains.graph_qa.ontotext_graphdb import OntotextGraphDBQAChain
from langchain.chains.graph_qa.sparql import GraphSparqlQAChain
from langchain.chains.history_aware_retriever import create_history_aware_retriever
from langchain.chains.hyde.base import HypotheticalDocumentEmbedder
from langchain.chains.llm import LLMChain
from langchain.chains.llm_checker.base import LLMCheckerChain
from langchain.chains.llm_math.base import LLMMathChain
from langchain.chains.llm_requests import LLMRequestsChain
from langchain.chains.llm_summarization_checker.base import LLMSummarizationCheckerChain
from langchain.chains.loading import load_chain
from langchain.chains.mapreduce import MapReduceChain
from langchain.chains.moderation import OpenAIModerationChain
from langchain.chains.natbot.base import NatBotChain
from langchain.chains.openai_functions import (
create_citation_fuzzy_match_chain,
create_extraction_chain,
create_extraction_chain_pydantic,
create_qa_with_sources_chain,
create_qa_with_structure_chain,
create_tagging_chain,
create_tagging_chain_pydantic,
)
from langchain.chains.qa_generation.base import QAGenerationChain
from langchain.chains.qa_with_sources.base import QAWithSourcesChain
from langchain.chains.qa_with_sources.retrieval import RetrievalQAWithSourcesChain
from langchain.chains.qa_with_sources.vector_db import VectorDBQAWithSourcesChain
from langchain.chains.retrieval import create_retrieval_chain
from langchain.chains.retrieval_qa.base import (
RetrievalQA,
VectorDBQA,
)
from langchain.chains.router import (
LLMRouterChain,
MultiPromptChain,
MultiRetrievalQAChain,
MultiRouteChain,
RouterChain,
)
from langchain.chains.sequential import SequentialChain, SimpleSequentialChain
from langchain.chains.sql_database.query import create_sql_query_chain
from langchain.chains.structured_output import create_structured_output_runnable
from langchain.chains.summarize import load_summarize_chain
from langchain.chains.transform import TransformChain
__all__ = [ _module_lookup = {
"APIChain", "APIChain": "langchain.chains.api.base",
"AnalyzeDocumentChain", "OpenAPIEndpointChain": "langchain.chains.api.openapi.chain",
"ArangoGraphQAChain", "AnalyzeDocumentChain": "langchain.chains.combine_documents.base",
"ChatVectorDBChain", "MapReduceDocumentsChain": "langchain.chains.combine_documents.map_reduce",
"ConstitutionalChain", "MapRerankDocumentsChain": "langchain.chains.combine_documents.map_rerank",
"ConversationChain", "ReduceDocumentsChain": "langchain.chains.combine_documents.reduce",
"ConversationalRetrievalChain", "RefineDocumentsChain": "langchain.chains.combine_documents.refine",
"FalkorDBQAChain", "StuffDocumentsChain": "langchain.chains.combine_documents.stuff",
"FlareChain", "ConstitutionalChain": "langchain.chains.constitutional_ai.base",
"GraphCypherQAChain", "ConversationChain": "langchain.chains.conversation.base",
"GraphQAChain", "ChatVectorDBChain": "langchain.chains.conversational_retrieval.base",
"GraphSparqlQAChain", "ConversationalRetrievalChain": "langchain.chains.conversational_retrieval.base",
"OntotextGraphDBQAChain", "generate_example": "langchain.chains.example_generator",
"HugeGraphQAChain", "FlareChain": "langchain.chains.flare.base",
"HypotheticalDocumentEmbedder", "ArangoGraphQAChain": "langchain.chains.graph_qa.arangodb",
"KuzuQAChain", "GraphQAChain": "langchain.chains.graph_qa.base",
"LLMChain", "GraphCypherQAChain": "langchain.chains.graph_qa.cypher",
"LLMCheckerChain", "FalkorDBQAChain": "langchain.chains.graph_qa.falkordb",
"LLMMathChain", "HugeGraphQAChain": "langchain.chains.graph_qa.hugegraph",
"LLMRequestsChain", "KuzuQAChain": "langchain.chains.graph_qa.kuzu",
"LLMRouterChain", "NebulaGraphQAChain": "langchain.chains.graph_qa.nebulagraph",
"LLMSummarizationCheckerChain", "NeptuneOpenCypherQAChain": "langchain.chains.graph_qa.neptune_cypher",
"MapReduceChain", "NeptuneSparqlQAChain": "langchain.chains.graph_qa.neptune_sparql",
"MapReduceDocumentsChain", "OntotextGraphDBQAChain": "langchain.chains.graph_qa.ontotext_graphdb",
"MapRerankDocumentsChain", "GraphSparqlQAChain": "langchain.chains.graph_qa.sparql",
"MultiPromptChain", "create_history_aware_retriever": "langchain.chains.history_aware_retriever",
"MultiRetrievalQAChain", "HypotheticalDocumentEmbedder": "langchain.chains.hyde.base",
"MultiRouteChain", "LLMChain": "langchain.chains.llm",
"NatBotChain", "LLMCheckerChain": "langchain.chains.llm_checker.base",
"NebulaGraphQAChain", "LLMMathChain": "langchain.chains.llm_math.base",
"NeptuneOpenCypherQAChain", "LLMRequestsChain": "langchain.chains.llm_requests",
"NeptuneSparqlQAChain", "LLMSummarizationCheckerChain": "langchain.chains.llm_summarization_checker.base",
"OpenAIModerationChain", "load_chain": "langchain.chains.loading",
"OpenAPIEndpointChain", "MapReduceChain": "langchain.chains.mapreduce",
"QAGenerationChain", "OpenAIModerationChain": "langchain.chains.moderation",
"QAWithSourcesChain", "NatBotChain": "langchain.chains.natbot.base",
"ReduceDocumentsChain", "create_citation_fuzzy_match_chain": "langchain.chains.openai_functions",
"RefineDocumentsChain", "create_extraction_chain": "langchain.chains.openai_functions",
"RetrievalQA", "create_extraction_chain_pydantic": "langchain.chains.openai_functions",
"RetrievalQAWithSourcesChain", "create_qa_with_sources_chain": "langchain.chains.openai_functions",
"RouterChain", "create_qa_with_structure_chain": "langchain.chains.openai_functions",
"SequentialChain", "create_tagging_chain": "langchain.chains.openai_functions",
"SimpleSequentialChain", "create_tagging_chain_pydantic": "langchain.chains.openai_functions",
"StuffDocumentsChain", "QAGenerationChain": "langchain.chains.qa_generation.base",
"TransformChain", "QAWithSourcesChain": "langchain.chains.qa_with_sources.base",
"VectorDBQA", "RetrievalQAWithSourcesChain": "langchain.chains.qa_with_sources.retrieval",
"VectorDBQAWithSourcesChain", "VectorDBQAWithSourcesChain": "langchain.chains.qa_with_sources.vector_db",
"create_citation_fuzzy_match_chain", "create_retrieval_chain": "langchain.chains.retrieval",
"create_extraction_chain", "RetrievalQA": "langchain.chains.retrieval_qa.base",
"create_extraction_chain_pydantic", "VectorDBQA": "langchain.chains.retrieval_qa.base",
"create_qa_with_sources_chain", "LLMRouterChain": "langchain.chains.router",
"create_qa_with_structure_chain", "MultiPromptChain": "langchain.chains.router",
"create_tagging_chain", "MultiRetrievalQAChain": "langchain.chains.router",
"create_tagging_chain_pydantic", "MultiRouteChain": "langchain.chains.router",
"generate_example", "RouterChain": "langchain.chains.router",
"load_chain", "SequentialChain": "langchain.chains.sequential",
"create_sql_query_chain", "SimpleSequentialChain": "langchain.chains.sequential",
"create_retrieval_chain", "create_sql_query_chain": "langchain.chains.sql_database.query",
"create_history_aware_retriever", "create_structured_output_runnable": "langchain.chains.structured_output",
"create_structured_output_runnable", "load_summarize_chain": "langchain.chains.summarize",
"load_summarize_chain", "TransformChain": "langchain.chains.transform",
] }
def __getattr__(name: str) -> Any:
if name in _module_lookup:
module = importlib.import_module(_module_lookup[name])
return getattr(module, name)
raise AttributeError(f"module {__name__} has no attribute {name}")
__all__ = list(_module_lookup.keys())