Skip to content

Ginkgo-AI/intelligent-rag-agent

Repository files navigation

Intelligent RAG Agent with Strategy Selection

An advanced RAG (Retrieval Augmented Generation) agent that automatically selects the best retrieval strategy based on query characteristics. This agent analyzes incoming queries and chooses from multiple RAG strategies to provide optimal responses.

Features

Multi-Strategy RAG System

  • Simple Retrieval: Basic semantic search for straightforward factual queries
  • Multi-step Retrieval: Multiple rounds of retrieval for complex, multi-faceted queries
  • Hybrid Search: Combines semantic similarity with keyword matching
  • Query Decomposition: Breaks complex questions into simpler sub-questions
  • Contextual Refinement: Iteratively refines search based on initial results
  • Multi-document Synthesis: Combines information from multiple relevant sources

Intelligent Strategy Selection

  • Query Analysis: Automatically classifies queries by complexity, type, and domain
  • Dynamic Strategy Selection: Chooses optimal RAG strategy based on query characteristics
  • Confidence Scoring: Evaluates retrieval quality and adjusts approach accordingly
  • Fallback Mechanisms: Switches strategies if initial approach fails to satisfy quality thresholds

Advanced Capabilities

  • Context-Aware Processing: Maintains conversation history and adapts responses
  • Quality Assessment: Evaluates response completeness and relevance
  • Adaptive Learning: Improves strategy selection based on success patterns
  • Performance Monitoring: Tracks response quality and retrieval effectiveness

Architecture

The system uses PocketFlow's workflow orchestration to create a sophisticated agent pipeline:

Query Input → Query Analyzer → Strategy Selector → RAG Strategy Executor → Quality Assessor → Response Output
                     ↓              ↓                      ↓                    ↓
                Query Features → Strategy Choice → Retrieved Context → Quality Score

Quick Start

  1. Install dependencies:

    pip install -r requirements.txt
  2. Set your OpenAI API key:

    export OPENAI_API_KEY="your-api-key-here"
  3. Run with sample data:

    python main.py
  4. Try different query types:

    python main.py --"What is machine learning?"
    python main.py --"Compare the economic impact of renewable energy vs fossil fuels on developing countries, considering both short-term costs and long-term sustainability benefits"
    python main.py --"How do neural networks work and what are the key differences between CNN, RNN, and transformer architectures?"

Query Types & Strategies

Query Type Example Selected Strategy
Simple Factual "What is Python?" Simple Retrieval
Complex Analysis "Compare AI ethics frameworks" Multi-step Retrieval
Multi-part Question "How do transformers work and why are they better than RNNs?" Query Decomposition
Domain-specific "Explain BERT architecture" Hybrid Search
Contextual Follow-up "How does that relate to GPT?" Contextual Refinement

Configuration

The agent supports extensive configuration through config.py:

  • Strategy selection thresholds
  • Retrieval parameters (k, similarity thresholds)
  • Quality assessment criteria
  • Fallback behavior settings
  • Performance monitoring options

Example Output

🔍 Analyzing query: "How do transformers compare to RNNs in terms of parallel processing and long-range dependencies?"

📊 Query Analysis:
   - Type: Comparative Technical
   - Complexity: High
   - Entities: ['transformers', 'RNNs', 'parallel processing', 'long-range dependencies']
   - Confidence: 0.92

🎯 Strategy Selection: Multi-step Retrieval
   - Primary: Technical comparison analysis
   - Secondary: Performance characteristics
   - Fallback: Query decomposition

🔎 Executing Multi-step Retrieval:
   Step 1: Retrieving transformer architecture docs...
   Step 2: Retrieving RNN architecture docs...
   Step 3: Retrieving parallel processing comparisons...
   Step 4: Retrieving long-range dependency analysis...

✅ Quality Assessment: Score 0.89/1.0
   - Completeness: High
   - Relevance: High
   - Technical accuracy: High

🤖 Response:
Transformers offer significant advantages over RNNs in both parallel processing and handling long-range dependencies...

About

Intelligent RAG Agent with Multi-Strategy Selection - Automatically selects optimal retrieval strategies based on query characteristics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages