From 7d95a10adad4a46cdc3ce2929c6dea02ef4c9db7 Mon Sep 17 00:00:00 2001 From: willtai Date: Tue, 26 Nov 2024 18:21:04 +0000 Subject: [PATCH] langchain: Fix Neo4jVector vector store reference from partner package for self query (#28292) _This should only be merged once neo4j is included under libs/partners._ # **Description:** Neo4jVector from langchain-community is being moved to langchain-neo4j: [see link](https://github.com/langchain-ai/langchain-neo4j/blob/main/libs/neo4j/langchain_neo4j/vectorstores/neo4j_vector.py#L436). To solve the issue below, this PR adds an attempt to import `Neo4jVector` from the partner package `langchain-neo4j`, similarly to the other partner packages. # **Issue:** When initializing `SelfQueryRetriever`, the following error is raised: ``` ValueError: Self query retriever with Vector Store type not supported. ``` [See related issue](https://github.com/langchain-ai/langchain/issues/19748). # **Dependencies:** - langchain-neo4j --- libs/langchain/langchain/retrievers/self_query/base.py | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/libs/langchain/langchain/retrievers/self_query/base.py b/libs/langchain/langchain/retrievers/self_query/base.py index a5254d47592..7a13362d553 100644 --- a/libs/langchain/langchain/retrievers/self_query/base.py +++ b/libs/langchain/langchain/retrievers/self_query/base.py @@ -161,6 +161,14 @@ def _get_builtin_translator(vectorstore: VectorStore) -> Visitor: if isinstance(vectorstore, MongoDBAtlasVectorSearch): return MongoDBAtlasTranslator() + try: + from langchain_neo4j import Neo4jVector + except ImportError: + pass + else: + if isinstance(vectorstore, Neo4jVector): + return Neo4jTranslator() + try: from langchain_chroma import Chroma except ImportError: