Kaggle 5-Day AI Agents Intensive - Capstone Project
Track: Agents for Good
Status: β
Production Ready
- GitHub Repository: https://github.com/Swanand33/accessible-ai-agents
- Main Implementation:
/adk_version/agent.py - Full Capabilities:
/CAPABILITIES.md - Kaggle Submission:
/KAGGLE_FINAL_SUBMISSION.md
- Problem Statement
- Solution
- Capabilities Demonstrated
- Quick Start
- Architecture
- Installation
- Usage
- Testing
- Deployment
- Contributing
- License
- 2.2 billion people worldwide have vision impairment or blindness
- Only 3% of web images have meaningful alt-text descriptions
- 95% of PDFs are completely inaccessible to screen readers
- This excludes people with disabilities from:
- π Education: Textbooks, research papers, course materials
- πΌ Employment: Job applications, work documents, training materials
- π° Information: News, government documents, healthcare information
Without accessible digital content, people with visual impairments face:
- Barriers to education and career advancement
- Inability to access critical information independently
- Dependence on others for basic tasks
- Exclusion from digital society
AccessibleAI is a production-ready multi-agent system built with Google's Agent Development Kit (ADK) that automatically makes digital content accessible by:
- Generating descriptive alt-text for images using AI vision
- Extracting and structuring text from PDF documents
- Orchestrating specialized agents to handle different content types seamlessly
- Specialization: Each agent optimized for its specific task
- Scalability: Easy to add new content types (audio, video, HTML, etc.)
- Reliability: Failure in one agent doesn't crash the entire system
- Observability: Track and log each agent's performance independently
- Maintainability: Clear separation of concerns and responsibilities
-
Multi-Agent Architecture β
- Coordinator Agent (orchestration & routing)
- Image Description Agent (Gemini Vision)
- PDF Processing Agent (PyPDF2)
-
Tools Integration π οΈ
- Google Gemini 2.0 Flash API (vision AI)
- PyPDF2 (PDF text extraction)
- Pillow (image processing)
-
Comprehensive Observability π
- Structured logging for all operations
- Success/failure tracking
- Performance metrics & statistics
- Batch Processing: Process multiple files at once
- Flexible Detail Levels: Concise or detailed descriptions
- Error Handling: Graceful handling of corrupt/invalid files
- Summary Generation: Human-readable processing reports
- Demo Mode: Works without API key for testing
We demonstrate 6 core capabilities from the course (exceeds 3+ requirement):
| # | Capability | Evidence | Day |
|---|---|---|---|
| 1 | Google ADK Framework | Full ADK implementation with 3 agents | Days 1-5 |
| 2 | Multi-Agent Orchestration | Coordinator pattern for agent collaboration | Day 1 |
| 3 | Tools & Integration | Gemini Vision API + PyPDF2 | Day 2 |
| 4 | Error Handling | Comprehensive error management | Day 4 |
| 5 | Quality & Testing | 6 tests, 100% pass rate | Day 4 |
| 6 | Production Readiness | Tested, documented, deployable | Day 5 |
Total: 6 capabilities β (Exceeds 3+ requirement)
See /CAPABILITIES.md for detailed breakdown.
βββββββββββββββββββββββββββββββββββββββββββββββββββ
β COORDINATOR AGENT β
β (Orchestrates workflow) β
βββββββββββββββ¬ββββββββββββββββββββββββββββββββββββ
β
βββββββββββ΄βββββββββββ
β β
βΌ βΌ
ββββββββββββββββ ββββββββββββββββ
β Image Agent β β PDF Agent β
β(Gemini Visionβ β(PyPDF2) β
β API) β β β
ββββββββββββββββ ββββββββββββββββ
1. CoordinatorAgent (Root Orchestrator)
- File type detection and routing
- Result aggregation
- Batch processing support
- Error handling and fault isolation
2. ImageDescriptionAgent (Vision AI)
- Analyzes images using Gemini Vision
- Generates descriptive alt-text
- Concise & detailed description modes
3. PDFProcessingAgent (Document Processing)
- Extracts text from PDFs
- Preserves document structure
- Handles multi-page documents
See /ARCHITECTURE_DIAGRAM.md for detailed diagrams.
- Python 3.10 or higher
- Google Gemini API key (Get one here)
git clone https://github.com/Swanand33/accessible-ai-agents.git
cd accessible-ai-agents# Create
python -m venv agent-env
# Activate (Windows)
agent-env\Scripts\activate
# Activate (Mac/Linux)
source agent-env/bin/activatepip install --upgrade pip
pip install -r requirements.txt# Copy example file
cp .env.example .env
# Edit .env and add your API key
# GEMINI_API_KEY=your_actual_api_key_here# Run with ADK (requires ADK CLI)
adk run
# Or test locally
python adk_version/test_adk_agents.pyimport google.generativeai as genai
from adk_version.agent import generate_image_description_tool, extract_pdf_text_tool
# Configure API
genai.configure(api_key="your_api_key")
# Process an image
result = generate_image_description_tool("path/to/image.jpg", detail_level="concise")
if result['success']:
print(f"Alt-text: {result['alt_text']}")
# Process a PDF
result = extract_pdf_text_tool("path/to/document.pdf")
if result['success']:
print(f"Extracted {result['char_count']} characters from {result['page_count']} pages")# Process multiple files
files = ["image1.jpg", "image2.png", "document.pdf"]
results = {
"total": len(files),
"processed": [],
"failed": []
}
for file_path in files:
if file_path.lower().endswith(('.jpg', '.jpeg', '.png', '.gif', '.webp')):
result = generate_image_description_tool(file_path)
elif file_path.lower().endswith('.pdf'):
result = extract_pdf_text_tool(file_path)
if result['success']:
results["processed"].append(file_path)
else:
results["failed"].append(file_path)
print(f"Success: {len(results['processed'])}/{len(files)}")cd adk_version
python test_adk_agents.py- β File type detection
- β Image description generation
- β PDF text extraction
- β ADK agent initialization
- β End-to-end image processing
- β End-to-end PDF processing
Result: 6/6 tests passing (100%)
accessible-ai-agents/
βββ adk_version/ # ADK Implementation (MAIN)
β βββ agent.py # 3 ADK agents + tools
β βββ agent.yaml # ADK deployment config
β βββ test_adk_agents.py # Test suite (6 tests)
β βββ requirements.txt # Dependencies
β βββ README.md # ADK-specific docs
βββ src/ # Original implementation
β βββ agents/
β β βββ coordinator.py
β β βββ image_agent.py
β β βββ pdf_agent.py
β βββ config.py
β βββ utils/
βββ tests/ # Additional tests
βββ examples/ # Sample files
β βββ sample_images/
β βββ sample_pdfs/
βββ docs/ # Documentation
βββ CAPABILITIES.md # Capabilities breakdown
βββ ARCHITECTURE_DIAGRAM.md # System diagrams
βββ KAGGLE_FINAL_SUBMISSION.md # Competition submission
βββ README.md # Main documentation
βββ requirements.txt # All dependencies
βββ .env.example # Environment template
βββ .gitignore # Git ignore rules
βββ LICENSE # MIT License
# Navigate to ADK version
cd adk_version
# Deploy with ADK
adk deploy --project-id=YOUR_PROJECT_ID --region=us-central1
# Check deployment
adk info
# Access web interface
adk web --port 8000# Run ADK locally
adk run
# Run tests locally
python test_adk_agents.py
# Use as library
python
>>> from agent import generate_image_description_tool
>>> result = generate_image_description_tool("image.jpg")-
Educational Institutions π
- Make course materials accessible (ADA compliance)
- Convert textbooks for all students
- Support diverse learning needs
-
Digital Libraries π
- Convert archives to accessible formats
- Preserve historical documents accessibly
- Enable researchers with disabilities
-
E-commerce π
- Product images accessible to all users
- Improve customer experience
- Expand market reach
-
Government ποΈ
- Meet legal accessibility requirements
- Serve constituents with disabilities
- Ensure equal access to services
-
Businesses πΌ
- Comply with accessibility laws (ADA, WCAG)
- Reduce legal liability
- Expand customer base
- Manual alt-text: 2-5 minutes per image
- Our system: Seconds per image
- Cost: $50-100/hour manual vs. $0.001 per image
- 100x faster and more cost-effective
- Reach: 2.2 billion people with vision impairment
- β Type hints on all functions
- β Comprehensive docstrings
- β Error handling with fallbacks
- β Input validation
- β Structured return values
- β Proper agent configuration
- β Tool registration and schemas
- β Deployment configuration (agent.yaml)
- β Environment management
- β Production-ready structure
- β 6 comprehensive tests (100% pass rate)
- β README with examples
- β API documentation
- β Capabilities mapping
- β Architecture diagrams
| Requirement | Status | Evidence |
|---|---|---|
| Uses Google ADK | β YES | adk_version/agent.py + agent.yaml |
| 3+ Capabilities | β YES | 6 capabilities (see CAPABILITIES.md) |
| Multi-agent System | β YES | 3 specialized agents |
| Solves Real Problem | β YES | Accessibility for 2.2B people |
| Working Implementation | β YES | 6/6 tests passing |
| Documentation | β YES | Comprehensive README + guides |
| Production-Ready | β YES | Tests, deployment config, error handling |
Overall Compliance: 7/7 (100%) β
Contributions welcome! Please:
- Fork the repository
- Create feature branch (
git checkout -b feature/AmazingFeature) - Commit changes (
git commit -m 'Add some AmazingFeature') - Push to branch (
git push origin feature/AmazingFeature) - Open Pull Request
This project is licensed under the MIT License - see LICENSE file for details.
- Google Gemini Team for the powerful vision API
- PyPDF2 Contributors for PDF processing capabilities
- Accessibility Community for highlighting critical needs
- Kaggle for the 5-Day AI Agents Intensive Course
- Course Instructors for excellent teaching
- GitHub Issues: Report bugs or request features
- GitHub Discussions: Ask questions or discuss ideas
The multi-agent architecture makes it easy to add:
- Video Captioning Agent - Automatic subtitle generation
- Audio Transcription Agent - Speech-to-text conversion
- HTML Optimization Agent - Web accessibility improvements
- Memory Capability - Remember user preferences
- Evaluation Framework - Quality metrics
- Add video support
- Add audio transcription
- Web API interface
- Dashboard for monitoring
- Scaling for enterprise use
Built with β€οΈ for accessibility. Powered by Google Gemini 2.0 Flash.
Making digital content accessible for everyone. One file at a time.