feat: Introduce Agentic RAG application with GPT-5 and LanceDB

This commit is contained in:
Shubhamsaboo
2025-08-07 23:37:15 -05:00
parent 3478406ea6
commit cbb10bc472
3 changed files with 366 additions and 0 deletions

View File

@@ -0,0 +1,153 @@
# 🧠 Agentic RAG with GPT-5
An agentic RAG application built with the Agno framework, featuring GPT-5 and LanceDB for efficient knowledge retrieval and question answering.
## ✨ Features
- **🤖 GPT-5-nano**: Latest OpenAI model for intelligent responses
- **🗄️ LanceDB**: Lightweight vector database for fast similarity search
- **🔍 Agentic RAG**: Intelligent retrieval augmented generation
- **📝 Markdown Formatting**: Beautiful, structured responses
- **🌐 Dynamic Knowledge**: Add URLs to expand knowledge base
- **⚡ Real-time Streaming**: Watch answers generate live
- **🎯 Clean Interface**: Simplified UI without configuration complexity
## 🚀 Quick Start
### Prerequisites
- Python 3.11+
- OpenAI API key with GPT-5 access
### Installation
1. **Clone and navigate to the project**
```bash
cd rag_tutorials/agentic_rag_gpt5
```
2. **Install dependencies**
```bash
pip install -r requirements.txt
```
3. **Set up your OpenAI API key**
```bash
export OPENAI_API_KEY="your-api-key-here"
```
Or create a `.env` file:
```
OPENAI_API_KEY=your-api-key-here
```
4. **Run the application**
```bash
streamlit run agentic_rag_gpt5.py
```
## 🎯 How to Use
1. **Enter your OpenAI API key** in the sidebar
2. **Add knowledge sources** by entering URLs in the sidebar
3. **Ask questions** using the text area or suggested prompts
4. **Watch answers stream** in real-time with markdown formatting
### Suggested Questions
- **"What is Agno?"** - Learn about the Agno framework and agents
- **"Teams in Agno"** - Understand how teams work in Agno
- **"Build RAG system"** - Get a step-by-step guide to building RAG systems
## 🏗️ Architecture
### Core Components
- **`Agent`**: Orchestrates the entire Q&A process
- **`UrlKnowledge`**: Manages document loading from URLs
- **`LanceDb`**: Vector database for efficient similarity search
- **`OpenAIEmbedder`**: Converts text to embeddings
- **`OpenAIChat`**: GPT-5-nano model for generating responses
### Data Flow
1. **Knowledge Loading**: URLs are processed and stored in LanceDB
2. **Vector Search**: OpenAI embeddings enable semantic search
3. **Response Generation**: GPT-5-nano processes information and generates answers
4. **Streaming Output**: Real-time display of formatted responses
## 🔧 Configuration
### Database Settings
- **Vector DB**: LanceDB with local storage
- **Table Name**: `agentic_rag_docs`
- **Search Type**: Vector similarity search
## 📚 Knowledge Management
### Adding Sources
- Use the sidebar to add new URLs
- Sources are automatically processed and indexed
- Current sources are displayed as numbered list
### Default Knowledge
- Starts with Agno documentation: `https://docs.agno.com/introduction/agents.md`
- Expandable with any web-based documentation
## 🎨 UI Features
### Sidebar
- **API Key Management**: Secure input for OpenAI credentials
- **URL Addition**: Dynamic knowledge base expansion
- **Current Sources**: Numbered list of loaded URLs
### Main Interface
- **Suggested Prompts**: Quick access to common questions
- **Query Input**: Large text area for custom questions
- **Real-time Streaming**: Live answer generation
- **Markdown Rendering**: Beautiful formatted responses
## 🛠️ Technical Details
### Dependencies
```
streamlit>=1.28.0
agno>=0.1.0
openai>=1.0.0
lancedb>=0.4.0
python-dotenv>=1.0.0
```
### Key Features
- **Event Filtering**: Only shows `RunResponseContent` events for clean output
- **Safe Attribute Access**: Prevents errors from missing attributes
- **Caching**: Efficient resource loading with Streamlit caching
- **Error Handling**: Graceful handling of API and processing errors
## 🔍 Troubleshooting
### Common Issues
**ModelProviderError with max_tokens**
- ✅ Fixed: Uses `max_completion_tokens` instead of `max_tokens`
**Tool calls appearing in output**
- ✅ Fixed: Filters to only show `RunResponseContent` events
**Knowledge base not loading**
- Check OpenAI API key is valid
- Ensure URLs are accessible
- Verify internet connection
### Performance Tips
- **Cache Resources**: Knowledge base and agent are cached for efficiency
- **Streaming**: Real-time updates without blocking
- **LanceDB**: Fast local vector search without external dependencies
## 🎯 Use Cases
- **Documentation Q&A**: Ask questions about technical documentation
- **Research Assistant**: Get answers from multiple knowledge sources
- **Learning Tool**: Interactive exploration of complex topics
- **Content Discovery**: Find relevant information across multiple sources
**Built with ❤️ using Agno, GPT-5, and LanceDB**