From 2ba1128095b9c8764dd8f87f7ed796005ca4dd7b Mon Sep 17 00:00:00 2001 From: Harrison Chase Date: Wed, 25 Jan 2023 17:47:29 -0800 Subject: [PATCH] Harrison/backwards compat (#740) --- langchain/embeddings/__init__.py | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/langchain/embeddings/__init__.py b/langchain/embeddings/__init__.py index 6a57deb136..972b771227 100644 --- a/langchain/embeddings/__init__.py +++ b/langchain/embeddings/__init__.py @@ -1,12 +1,39 @@ """Wrappers around embedding modules.""" +import logging +from typing import Any + from langchain.embeddings.cohere import CohereEmbeddings from langchain.embeddings.huggingface import HuggingFaceEmbeddings from langchain.embeddings.huggingface_hub import HuggingFaceHubEmbeddings from langchain.embeddings.openai import OpenAIEmbeddings +logger = logging.getLogger(__name__) + __all__ = [ "OpenAIEmbeddings", "HuggingFaceEmbeddings", "CohereEmbeddings", "HuggingFaceHubEmbeddings", ] + + +# TODO: this is in here to maintain backwards compatibility +class HypotheticalDocumentEmbedder: + def __init__(self, *args: Any, **kwargs: Any): + logger.warning( + "Using a deprecated class. Please use " + "`from langchain.chains import HypotheticalDocumentEmbedder` instead" + ) + from langchain.chains.hyde.base import HypotheticalDocumentEmbedder as H + + return H(*args, **kwargs) # type: ignore + + @classmethod + def from_llm(cls, *args: Any, **kwargs: Any) -> Any: + logger.warning( + "Using a deprecated class. Please use " + "`from langchain.chains import HypotheticalDocumentEmbedder` instead" + ) + from langchain.chains.hyde.base import HypotheticalDocumentEmbedder as H + + return H.from_llm(*args, **kwargs)