[X] I added a very descriptive title to this issue.
[X] I searched the LangChain documentation with the integrated search.
[X] I used the GitHub search to find a similar question and didn't find it.
[X] I am sure that this is a bug in LangChain rather than my code.
[X] The bug is not resolved by updating to the latest stable version of LangChain (or the specific integration package).
Example Code
# model = SentenceTransformer(config.EMBEDDING_MODEL_NAME)
KG_vector_store = Neo4jVector.from_existing_index(
embedding=SentenceTransformerEmbeddings(model_name = config.EMBEDDING_MODEL_NAME),
url=NEO4J_URI,
username=NEO4J_USERNAME,
password=NEO4J_PASSWORD,
database="neo4j",
index_name=VECTOR_INDEX_NAME,
text_node_property=VECTOR_SOURCE_PROPERTY,
retrieval_query=retrieval_query_extra_text,
)
# Create a retriever from the vector store
retriever_extra_text = KG_vector_store.as_retriever(
search_type="mmr",
search_kwargs={'k': 6, 'fetch_k': 50} #,'lambda_mult': 0.25
)
Error Message and Stack Trace (if applicable)
NotImplementedError Traceback (most recent call last)
in <cell line: 1>()
----> 1 rag.query("Please describe in detail what is the evidence report about?")['answer']
Checked other resources
Example Code
Error Message and Stack Trace (if applicable)
NotImplementedError Traceback (most recent call last) in <cell line: 1>()
----> 1 rag.query("Please describe in detail what is the evidence report about?")['answer']
8 frames /content/RAG/KG_for_RAG/src/execute_rag.py in query(self, query) 318 self.init_graph_for_query() 319 --> 320 answer = self.QA_CHAIN.invoke( 321 {"question": query}, 322 return_only_outputs=True,
/usr/local/lib/python3.10/dist-packages/langchain/chains/base.py in invoke(self, input, config, **kwargs) 164 except BaseException as e: 165 run_manager.on_chain_error(e) --> 166 raise e 167 run_manager.on_chain_end(outputs) 168
/usr/local/lib/python3.10/dist-packages/langchain/chains/base.py in invoke(self, input, config, **kwargs) 154 self._validate_inputs(inputs) 155 outputs = ( --> 156 self._call(inputs, run_manager=run_manager) 157 if new_arg_supported 158 else self._call(inputs)
/usr/local/lib/python3.10/dist-packages/langchain/chains/qa_with_sources/base.py in _call(self, inputs, run_manager) 150 ) 151 if accepts_run_manager: --> 152 docs = self._get_docs(inputs, run_manager=_run_manager) 153 else: 154 docs = self._get_docs(inputs) # type: ignore[call-arg]
/usr/local/lib/python3.10/dist-packages/langchain/chains/qa_with_sources/retrieval.py in _get_docs(self, inputs, run_manager) 47 ) -> List[Document]: 48 question = inputs[self.question_key] ---> 49 docs = self.retriever.invoke( 50 question, config={"callbacks": run_manager.get_child()} 51 )
/usr/local/lib/python3.10/dist-packages/langchain_core/retrievers.py in invoke(self, input, config, **kwargs) 219 except Exception as e: 220 run_manager.on_retriever_error(e) --> 221 raise e 222 else: 223 run_manager.on_retriever_end(
/usr/local/lib/python3.10/dist-packages/langchain_core/retrievers.py in invoke(self, input, config, kwargs) 212 _kwargs = kwargs if self._expects_other_args else {} 213 if self._new_arg_supported: --> 214 result = self._get_relevant_documents( 215 input, run_manager=run_manager, _kwargs 216 )
/usr/local/lib/python3.10/dist-packages/langchain_core/vectorstores/base.py in _get_relevant_documents(self, query, runmanager) 1255 docs = [doc for doc, in docs_and_similarities] 1256 elif self.search_type == "mmr": -> 1257 docs = self.vectorstore.max_marginal_relevance_search( 1258 query, **self.search_kwargs 1259 )
/usr/local/lib/python3.10/dist-packages/langchain_core/vectorstores/base.py in max_marginal_relevance_search(self, query, k, fetch_k, lambda_mult, **kwargs) 929 List of Documents selected by maximal marginal relevance. 930 """ --> 931 raise NotImplementedError 932 933 async def amax_marginal_relevance_search(
NotImplementedError:
Description
MMR NotImplimented in Neo4jVector despite the documentation saying otherwise.
System Info
System Information
Package Information