diff --git a/libs/langchain/langchain/retrievers/self_query/base.py b/libs/langchain/langchain/retrievers/self_query/base.py index ce6dc6b68d8..092478f840b 100644 --- a/libs/langchain/langchain/retrievers/self_query/base.py +++ b/libs/langchain/langchain/retrievers/self_query/base.py @@ -64,13 +64,11 @@ def _get_builtin_translator(vectorstore: VectorStore) -> Visitor: from langchain_community.query_constructors.weaviate import WeaviateTranslator from langchain_community.vectorstores import ( AstraDB, - Chroma, DashVector, DatabricksVectorSearch, DeepLake, Dingo, Milvus, - MongoDBAtlasVectorSearch, MyScale, OpenSearchVectorSearch, PGVector, @@ -82,9 +80,15 @@ def _get_builtin_translator(vectorstore: VectorStore) -> Visitor: Vectara, Weaviate, ) + from langchain_community.vectorstores import ( + Chroma as CommunityChroma, + ) from langchain_community.vectorstores import ( ElasticsearchStore as ElasticsearchStoreCommunity, ) + from langchain_community.vectorstores import ( + MongoDBAtlasVectorSearch as CommunityMongoDBAtlasVectorSearch, + ) from langchain_community.vectorstores import ( Pinecone as CommunityPinecone, ) @@ -93,7 +97,7 @@ def _get_builtin_translator(vectorstore: VectorStore) -> Visitor: AstraDB: AstraDBTranslator, PGVector: PGVectorTranslator, CommunityPinecone: PineconeTranslator, - Chroma: ChromaTranslator, + CommunityChroma: ChromaTranslator, DashVector: DashvectorTranslator, Dingo: DingoDBTranslator, Weaviate: WeaviateTranslator, @@ -106,7 +110,7 @@ def _get_builtin_translator(vectorstore: VectorStore) -> Visitor: SupabaseVectorStore: SupabaseVectorTranslator, TimescaleVector: TimescaleVectorTranslator, OpenSearchVectorSearch: OpenSearchTranslator, - MongoDBAtlasVectorSearch: MongoDBAtlasTranslator, + CommunityMongoDBAtlasVectorSearch: MongoDBAtlasTranslator, } if isinstance(vectorstore, DatabricksVectorSearch): return DatabricksVectorSearchTranslator() @@ -148,6 +152,22 @@ def _get_builtin_translator(vectorstore: VectorStore) -> Visitor: if isinstance(vectorstore, PineconeVectorStore): return PineconeTranslator() + try: + from langchain_mongodb import MongoDBAtlasVectorSearch + except ImportError: + pass + else: + if isinstance(vectorstore, MongoDBAtlasVectorSearch): + return MongoDBAtlasTranslator() + + try: + from langchain_chroma import Chroma + except ImportError: + pass + else: + if isinstance(vectorstore, Chroma): + return ChromaTranslator() + raise ValueError( f"Self query retriever with Vector Store type {vectorstore.__class__}" f" not supported."