Many RAG applications employ a simplified retrieval process: documents are segmented into chunks, converted into embeddings, and stored within a vector database. Queries trigger retrieval of the top-k most similar documents based on embedding similarity. However, this approach suffers from limitations, particularly with extensive datasets. Chunk ambiguity and suboptimal information retrieval can compromise accuracy.
Recursive retrieval enhances retrieval precision by leveraging document structure. Instead of directly retrieving chunks, it prioritizes relevant summaries, subsequently drilling down to associated chunks for more focused results.
This article details recursive retrieval and guides you through its implementation using LlamaIndex.
RAG and LangChain
LangChain facilitates the integration of external data with LLMs via Retrieval Augmented Generation (RAG).
Recursive Retrieval Explained
Unlike methods relying solely on raw chunk embeddings, recursive retrieval embeds document summaries, linking them to their corresponding chunks. Queries initially retrieve relevant summaries, then pinpoint related information within those summaries' associated chunks. This contextual approach improves information relevance.
Implementing Recursive Retrieval with LlamaIndex
This section guides you through a step-by-step implementation of recursive retrieval using LlamaIndex, from document loading to query execution.
Step 1: Document Loading and Preparation
Documents are loaded using SimpleDirectoryReader
. Each document receives a title and metadata (e.g., category) for enhanced filtering. The loaded documents are stored in a dictionary for easy access.
from llama_index.core import SimpleDirectoryReader # ... (Code for loading documents remains the same) ...
Step 2: LLM and Chunking Setup
An LLM (e.g., OpenAI's GPT-4o Mini) is initialized, along with a sentence splitter for chunk creation and a callback manager for process monitoring.
from llama_index.llms.openai import OpenAI from llama_index.core.callbacks import LlamaDebugHandler, CallbackManager from llama_index.core.node_parser import SentenceSplitter # ... (Code for LLM and chunking setup remains the same) ...
Step 3: Vector Index Creation and Summary Generation
A vector index is created for each document to enable similarity-based retrieval. LLM-generated summaries are stored as IndexNode
objects.
from llama_index.core import VectorStoreIndex, SummaryIndex from llama_index.core.schema import IndexNode # ... (Code for building vector indices and generating summaries remains the same) ...
Step 4: Top-Level Vector Index Construction
A top-level vector index is built from the generated summaries, enabling initial retrieval of relevant summaries before accessing detailed chunks.
# ... (Code for building the top-level vector index remains the same) ...
Step 5: Recursive Retrieval Setup
The recursive retriever is configured, combining the top-level retriever with individual document retrievers to facilitate the hierarchical retrieval process.
from llama_index.core.retrievers import RecursiveRetriever # ... (Code for setting up the recursive retriever remains the same) ...
Step 6: Recursive Retrieval Queries
Sample queries are executed using the configured recursive retriever.
from llama_index.core import SimpleDirectoryReader # ... (Code for loading documents remains the same) ...
Conclusion
Recursive retrieval, leveraging document summaries and hierarchies, enhances the relevance of retrieved chunks, especially with large datasets. It offers a robust solution for building accurate retrieval systems in data-rich environments. Further exploration of RAG techniques can be found in the linked blog posts.
The above is the detailed content of Recursive Retrieval for RAG: Implementation With LlamaIndex. For more information, please follow other related articles on the PHP Chinese website!

While it can’t provide the human connection and intuition of a trained therapist, research has shown that many people are comfortable sharing their worries and concerns with relatively faceless and anonymous AI bots. Whether this is always a good i

Artificial intelligence (AI), a technology decades in the making, is revolutionizing the food retail industry. From large-scale efficiency gains and cost reductions to streamlined processes across various business functions, AI's impact is undeniabl

Let’s talk about it. This analysis of an innovative AI breakthrough is part of my ongoing Forbes column coverage on the latest in AI including identifying and explaining various impactful AI complexities (see the link here). In addition, for my comp

Maintaining a professional image requires occasional wardrobe updates. While online shopping is convenient, it lacks the certainty of in-person try-ons. My solution? AI-powered personalization. I envision an AI assistant curating clothing selecti

Google Translate adds language learning function According to Android Authority, app expert AssembleDebug has found that the latest version of the Google Translate app contains a new "practice" mode of testing code designed to help users improve their language skills through personalized activities. This feature is currently invisible to users, but AssembleDebug is able to partially activate it and view some of its new user interface elements. When activated, the feature adds a new Graduation Cap icon at the bottom of the screen marked with a "Beta" badge indicating that the "Practice" feature will be released initially in experimental form. The related pop-up prompt shows "Practice the activities tailored for you!", which means Google will generate customized

MIT researchers are developing NANDA, a groundbreaking web protocol designed for AI agents. Short for Networked Agents and Decentralized AI, NANDA builds upon Anthropic's Model Context Protocol (MCP) by adding internet capabilities, enabling AI agen

Meta's Latest Venture: An AI App to Rival ChatGPT Meta, the parent company of Facebook, Instagram, WhatsApp, and Threads, is launching a new AI-powered application. This standalone app, Meta AI, aims to compete directly with OpenAI's ChatGPT. Lever

Navigating the Rising Tide of AI Cyber Attacks Recently, Jason Clinton, CISO for Anthropic, underscored the emerging risks tied to non-human identities—as machine-to-machine communication proliferates, safeguarding these "identities" become


Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

SublimeText3 Chinese version
Chinese version, very easy to use

EditPlus Chinese cracked version
Small size, syntax highlighting, does not support code prompt function

Safe Exam Browser
Safe Exam Browser is a secure browser environment for taking online exams securely. This software turns any computer into a secure workstation. It controls access to any utility and prevents students from using unauthorized resources.

WebStorm Mac version
Useful JavaScript development tools

PhpStorm Mac version
The latest (2018.2.1) professional PHP integrated development tool
