Find answers from the community

Home
Members
knearest
k
knearest
Offline, last seen 6 months ago
Joined September 25, 2024
I'm trying out a recursive retriever using metadata as shown in this tutorial: https://docs.llamaindex.ai/en/stable/examples/retrievers/recursive_retriever_nodes.html#metadata-references-summaries-generated-questions-referring-to-a-bigger-chunk

But I"m getting an error:

Plain Text
    text=d["questions_this_excerpt_can_answer"],
         ~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
KeyError: 'questions_this_excerpt_can_answer'


Here's my code:

Plain Text
    extractors = [
        SummaryExtractor(summaries=["self"], show_progress=True, llm=llm),
        QuestionsAnsweredExtractor(questions=5, show_progress=True, llm=llm),
    ]

    metadata_dicts = []
    for extractor in extractors:
        metadata_dicts.extend(extractor.extract(nodes))

    all_nodes = copy.deepcopy(nodes)
    for idx, d in enumerate(metadata_dicts):
        inode_q = IndexNode(
            text=d["questions_this_excerpt_can_answer"],
            index_id=nodes[idx].node_id,
        )
        inode_s = IndexNode(text=d["section_summary"], index_id=nodes[idx].node_id)
        all_nodes.extend([inode_q, inode_s])
2 comments
F
k
I'm using RetrieverEvaluator and getting different numbers each time I run it.

For example, the mrr might be 0.486083 the first time, but 0.473583 the second time.

Here's the retriever I'm evaluating:

Plain Text
    vector_store = get_chroma_vector_store(path)
    embed_model = resolve_embed_model("local:BAAI/bge-small-en-v1.5")
    service_context = ServiceContext.from_defaults(llm=None, embed_model=embed_model)
    index = VectorStoreIndex.from_vector_store(
        vector_store,
        service_context=service_context,
    )
    retriever = index.as_retriever(similarity_top_k=5)
2 comments
k
L
I'm loading an index from disk like this:

Plain Text
index = load_index_from_storage(storage_context, service_context=service_context)


I want to obtain the nodes so that I can create a node_dict to pass into the RecursiveRetriever constructor:

Plain Text
retriever_chunk = RecursiveRetriever(
    "vector",
    retriever_dict={"vector": vector_retriever_chunk},
    node_dict=all_nodes_dict,
    verbose=True,
)


Is there a way to do this?
11 comments
d
k
L