-
Hello, how can I pass the nodes to BM25Retriever? My current code is below but it gives me an error: ``
self.bm25_retriever = BM25Retriever.from_defaults(nodes=vector_index.docstore.docs.values(),similarity_top_k=similarity_top_k) Error: Cell In[30], line 10
---> 10 self.bm25_retriever = BM25Retriever.from_defaults(nodes=vector_index.docstore.docs.values(),similarity_top_k=similarity_top_k)
File c:\Users\Mahou\miniconda3\envs\bot8\lib\site-packages\llama_index\retrievers\bm25\base.py:130, in BM25Retriever.from_defaults(cls, index, nodes, docstore, stemmer, language, similarity_top_k, verbose, skip_stemming, token_pattern, tokenizer)
128 # ensure only one of index, nodes, or docstore is passed
129 if sum(bool(val) for val in [index, nodes, docstore]) != 1:
--> 130 raise ValueError("Please pass exactly one of index, nodes, or docstore.")
132 if index is not None:
133 docstore = index.docstore
ValueError: Please pass exactly one of index, nodes, or docstore. |
Beta Was this translation helpful? Give feedback.
Replies: 1 comment
-
To resolve the "Please pass exactly one of index, nodes, or docstore" error when passing nodes to from llama_index.retrievers.bm25 import BM25Retriever
import Stemmer
# Assuming you have a list of nodes from your VectorStoreIndex
nodes = vector_index.docstore.docs.values()
# Initialize the BM25Retriever with the nodes
bm25_retriever = BM25Retriever.from_defaults(
nodes=nodes,
similarity_top_k=similarity_top_k,
stemmer=Stemmer.Stemmer("english"),
language="english",
) Make sure that you are not passing both To continue talking to Dosu, mention @dosu. Help Dosu learn! Give it feedback: Great Response | Irrelevant Answer | Incorrect Sources | Too Verbose | Hallucination | Bug Report | Other |
Beta Was this translation helpful? Give feedback.
To resolve the "Please pass exactly one of index, nodes, or docstore" error when passing nodes to
BM25Retriever
, ensure that you are providing only one of theindex
,nodes
, ordocstore
arguments. Here's how you can correctly pass the nodes:Make sure that you are not passing both
nodes
and any other arg…