make warnings more modular (#11047)

pull/11052/head
Harrison Chase 12 months ago committed by GitHub
parent c87e9fb2ce
commit bea78b3271
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -20,194 +20,289 @@ debug: bool = False
llm_cache: Optional["BaseCache"] = None llm_cache: Optional["BaseCache"] = None
def __getattr__(name: str) -> Any: def _warn_on_import(name: str) -> None:
warnings.warn( warnings.warn(
f"Importing {name} from langchain root module is no longer supported." f"Importing {name} from langchain root module is no longer supported."
) )
def __getattr__(name: str) -> Any:
if name == "MRKLChain": if name == "MRKLChain":
from langchain.agents import MRKLChain from langchain.agents import MRKLChain
_warn_on_import(name)
return MRKLChain return MRKLChain
elif name == "ReActChain": elif name == "ReActChain":
from langchain.agents import ReActChain from langchain.agents import ReActChain
_warn_on_import(name)
return ReActChain return ReActChain
elif name == "SelfAskWithSearchChain": elif name == "SelfAskWithSearchChain":
from langchain.agents import SelfAskWithSearchChain from langchain.agents import SelfAskWithSearchChain
_warn_on_import(name)
return SelfAskWithSearchChain return SelfAskWithSearchChain
elif name == "ConversationChain": elif name == "ConversationChain":
from langchain.chains import ConversationChain from langchain.chains import ConversationChain
_warn_on_import(name)
return ConversationChain return ConversationChain
elif name == "LLMBashChain": elif name == "LLMBashChain":
from langchain.chains import LLMBashChain from langchain.chains import LLMBashChain
_warn_on_import(name)
return LLMBashChain return LLMBashChain
elif name == "LLMChain": elif name == "LLMChain":
from langchain.chains import LLMChain from langchain.chains import LLMChain
_warn_on_import(name)
return LLMChain return LLMChain
elif name == "LLMCheckerChain": elif name == "LLMCheckerChain":
from langchain.chains import LLMCheckerChain from langchain.chains import LLMCheckerChain
_warn_on_import(name)
return LLMCheckerChain return LLMCheckerChain
elif name == "LLMMathChain": elif name == "LLMMathChain":
from langchain.chains import LLMMathChain from langchain.chains import LLMMathChain
_warn_on_import(name)
return LLMMathChain return LLMMathChain
elif name == "QAWithSourcesChain": elif name == "QAWithSourcesChain":
from langchain.chains import QAWithSourcesChain from langchain.chains import QAWithSourcesChain
_warn_on_import(name)
return QAWithSourcesChain return QAWithSourcesChain
elif name == "VectorDBQA": elif name == "VectorDBQA":
from langchain.chains import VectorDBQA from langchain.chains import VectorDBQA
_warn_on_import(name)
return VectorDBQA return VectorDBQA
elif name == "VectorDBQAWithSourcesChain": elif name == "VectorDBQAWithSourcesChain":
from langchain.chains import VectorDBQAWithSourcesChain from langchain.chains import VectorDBQAWithSourcesChain
_warn_on_import(name)
return VectorDBQAWithSourcesChain return VectorDBQAWithSourcesChain
elif name == "InMemoryDocstore": elif name == "InMemoryDocstore":
from langchain.docstore import InMemoryDocstore from langchain.docstore import InMemoryDocstore
_warn_on_import(name)
return InMemoryDocstore return InMemoryDocstore
elif name == "Wikipedia": elif name == "Wikipedia":
from langchain.docstore import Wikipedia from langchain.docstore import Wikipedia
_warn_on_import(name)
return Wikipedia return Wikipedia
elif name == "Anthropic": elif name == "Anthropic":
from langchain.llms import Anthropic from langchain.llms import Anthropic
_warn_on_import(name)
return Anthropic return Anthropic
elif name == "Banana": elif name == "Banana":
from langchain.llms import Banana from langchain.llms import Banana
_warn_on_import(name)
return Banana return Banana
elif name == "CerebriumAI": elif name == "CerebriumAI":
from langchain.llms import CerebriumAI from langchain.llms import CerebriumAI
_warn_on_import(name)
return CerebriumAI return CerebriumAI
elif name == "Cohere": elif name == "Cohere":
from langchain.llms import Cohere from langchain.llms import Cohere
_warn_on_import(name)
return Cohere return Cohere
elif name == "ForefrontAI": elif name == "ForefrontAI":
from langchain.llms import ForefrontAI from langchain.llms import ForefrontAI
_warn_on_import(name)
return ForefrontAI return ForefrontAI
elif name == "GooseAI": elif name == "GooseAI":
from langchain.llms import GooseAI from langchain.llms import GooseAI
_warn_on_import(name)
return GooseAI return GooseAI
elif name == "HuggingFaceHub": elif name == "HuggingFaceHub":
from langchain.llms import HuggingFaceHub from langchain.llms import HuggingFaceHub
_warn_on_import(name)
return HuggingFaceHub return HuggingFaceHub
elif name == "HuggingFaceTextGenInference": elif name == "HuggingFaceTextGenInference":
from langchain.llms import HuggingFaceTextGenInference from langchain.llms import HuggingFaceTextGenInference
_warn_on_import(name)
return HuggingFaceTextGenInference return HuggingFaceTextGenInference
elif name == "LlamaCpp": elif name == "LlamaCpp":
from langchain.llms import LlamaCpp from langchain.llms import LlamaCpp
_warn_on_import(name)
return LlamaCpp return LlamaCpp
elif name == "Modal": elif name == "Modal":
from langchain.llms import Modal from langchain.llms import Modal
_warn_on_import(name)
return Modal return Modal
elif name == "OpenAI": elif name == "OpenAI":
from langchain.llms import OpenAI from langchain.llms import OpenAI
_warn_on_import(name)
return OpenAI return OpenAI
elif name == "Petals": elif name == "Petals":
from langchain.llms import Petals from langchain.llms import Petals
_warn_on_import(name)
return Petals return Petals
elif name == "PipelineAI": elif name == "PipelineAI":
from langchain.llms import PipelineAI from langchain.llms import PipelineAI
_warn_on_import(name)
return PipelineAI return PipelineAI
elif name == "SagemakerEndpoint": elif name == "SagemakerEndpoint":
from langchain.llms import SagemakerEndpoint from langchain.llms import SagemakerEndpoint
_warn_on_import(name)
return SagemakerEndpoint return SagemakerEndpoint
elif name == "StochasticAI": elif name == "StochasticAI":
from langchain.llms import StochasticAI from langchain.llms import StochasticAI
_warn_on_import(name)
return StochasticAI return StochasticAI
elif name == "Writer": elif name == "Writer":
from langchain.llms import Writer from langchain.llms import Writer
_warn_on_import(name)
return Writer return Writer
elif name == "HuggingFacePipeline": elif name == "HuggingFacePipeline":
from langchain.llms.huggingface_pipeline import HuggingFacePipeline from langchain.llms.huggingface_pipeline import HuggingFacePipeline
_warn_on_import(name)
return HuggingFacePipeline return HuggingFacePipeline
elif name == "FewShotPromptTemplate": elif name == "FewShotPromptTemplate":
from langchain.prompts import FewShotPromptTemplate from langchain.prompts import FewShotPromptTemplate
_warn_on_import(name)
return FewShotPromptTemplate return FewShotPromptTemplate
elif name == "Prompt": elif name == "Prompt":
from langchain.prompts import Prompt from langchain.prompts import Prompt
_warn_on_import(name)
return Prompt return Prompt
elif name == "PromptTemplate": elif name == "PromptTemplate":
from langchain.prompts import PromptTemplate from langchain.prompts import PromptTemplate
_warn_on_import(name)
return PromptTemplate return PromptTemplate
elif name == "BasePromptTemplate": elif name == "BasePromptTemplate":
from langchain.schema.prompt_template import BasePromptTemplate from langchain.schema.prompt_template import BasePromptTemplate
_warn_on_import(name)
return BasePromptTemplate return BasePromptTemplate
elif name == "ArxivAPIWrapper": elif name == "ArxivAPIWrapper":
from langchain.utilities import ArxivAPIWrapper from langchain.utilities import ArxivAPIWrapper
_warn_on_import(name)
return ArxivAPIWrapper return ArxivAPIWrapper
elif name == "GoldenQueryAPIWrapper": elif name == "GoldenQueryAPIWrapper":
from langchain.utilities import GoldenQueryAPIWrapper from langchain.utilities import GoldenQueryAPIWrapper
_warn_on_import(name)
return GoldenQueryAPIWrapper return GoldenQueryAPIWrapper
elif name == "GoogleSearchAPIWrapper": elif name == "GoogleSearchAPIWrapper":
from langchain.utilities import GoogleSearchAPIWrapper from langchain.utilities import GoogleSearchAPIWrapper
_warn_on_import(name)
return GoogleSearchAPIWrapper return GoogleSearchAPIWrapper
elif name == "GoogleSerperAPIWrapper": elif name == "GoogleSerperAPIWrapper":
from langchain.utilities import GoogleSerperAPIWrapper from langchain.utilities import GoogleSerperAPIWrapper
_warn_on_import(name)
return GoogleSerperAPIWrapper return GoogleSerperAPIWrapper
elif name == "PowerBIDataset": elif name == "PowerBIDataset":
from langchain.utilities import PowerBIDataset from langchain.utilities import PowerBIDataset
_warn_on_import(name)
return PowerBIDataset return PowerBIDataset
elif name == "SearxSearchWrapper": elif name == "SearxSearchWrapper":
from langchain.utilities import SearxSearchWrapper from langchain.utilities import SearxSearchWrapper
_warn_on_import(name)
return SearxSearchWrapper return SearxSearchWrapper
elif name == "WikipediaAPIWrapper": elif name == "WikipediaAPIWrapper":
from langchain.utilities import WikipediaAPIWrapper from langchain.utilities import WikipediaAPIWrapper
_warn_on_import(name)
return WikipediaAPIWrapper return WikipediaAPIWrapper
elif name == "WolframAlphaAPIWrapper": elif name == "WolframAlphaAPIWrapper":
from langchain.utilities import WolframAlphaAPIWrapper from langchain.utilities import WolframAlphaAPIWrapper
_warn_on_import(name)
return WolframAlphaAPIWrapper return WolframAlphaAPIWrapper
elif name == "SQLDatabase": elif name == "SQLDatabase":
from langchain.utilities import SQLDatabase from langchain.utilities import SQLDatabase
_warn_on_import(name)
return SQLDatabase return SQLDatabase
elif name == "FAISS": elif name == "FAISS":
from langchain.vectorstores import FAISS from langchain.vectorstores import FAISS
_warn_on_import(name)
return FAISS return FAISS
elif name == "ElasticVectorSearch": elif name == "ElasticVectorSearch":
from langchain.vectorstores import ElasticVectorSearch from langchain.vectorstores import ElasticVectorSearch
_warn_on_import(name)
return ElasticVectorSearch return ElasticVectorSearch
# For backwards compatibility # For backwards compatibility
elif name == "SerpAPIChain": elif name == "SerpAPIChain":
from langchain.utilities import SerpAPIWrapper from langchain.utilities import SerpAPIWrapper
_warn_on_import(name)
return SerpAPIWrapper return SerpAPIWrapper
else: else:
raise AttributeError(f"Could not find: {name}") raise AttributeError(f"Could not find: {name}")

Loading…
Cancel
Save