Skip to content

Swanand33/accessible-ai-agents

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

13 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

AccessibleAI - Multi-Agent System for Digital Content Accessibility

Kaggle 5-Day AI Agents Intensive - Capstone Project
Track: Agents for Good
Status: βœ… Production Ready

Python 3.10+ License: MIT Gemini 2.0


🎯 Quick Links


πŸ“– Table of Contents


🚨 Problem Statement

The Accessibility Crisis

  • 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

Impact

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

πŸ’‘ Solution

AccessibleAI is a production-ready multi-agent system built with Google's Agent Development Kit (ADK) that automatically makes digital content accessible by:

  1. Generating descriptive alt-text for images using AI vision
  2. Extracting and structuring text from PDF documents
  3. Orchestrating specialized agents to handle different content types seamlessly

Why Multi-Agent Architecture?

  • 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

✨ Features

πŸ”₯ Core Features

  1. Multi-Agent Architecture ⭐

    • Coordinator Agent (orchestration & routing)
    • Image Description Agent (Gemini Vision)
    • PDF Processing Agent (PyPDF2)
  2. Tools Integration πŸ› οΈ

    • Google Gemini 2.0 Flash API (vision AI)
    • PyPDF2 (PDF text extraction)
    • Pillow (image processing)
  3. Comprehensive Observability πŸ“Š

    • Structured logging for all operations
    • Success/failure tracking
    • Performance metrics & statistics

🎁 Bonus Features

  • 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

πŸ“Š Capabilities Demonstrated

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.


πŸ—οΈ Architecture

System Overview

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚           COORDINATOR AGENT                     β”‚
β”‚       (Orchestrates workflow)                   β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
              β”‚
    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
    β”‚                    β”‚
    β–Ό                    β–Ό
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ Image Agent  β”‚  β”‚ PDF Agent    β”‚
β”‚(Gemini Visionβ”‚  β”‚(PyPDF2)      β”‚
β”‚ API)         β”‚  β”‚              β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Agent Responsibilities

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.


πŸš€ Quick Start

Prerequisites

  • Python 3.10 or higher
  • Google Gemini API key (Get one here)

1. Clone Repository

git clone https://github.com/Swanand33/accessible-ai-agents.git
cd accessible-ai-agents

2. Create Virtual Environment

# Create
python -m venv agent-env

# Activate (Windows)
agent-env\Scripts\activate

# Activate (Mac/Linux)
source agent-env/bin/activate

3. Install Dependencies

pip install --upgrade pip
pip install -r requirements.txt

4. Configure API Key

# Copy example file
cp .env.example .env

# Edit .env and add your API key
# GEMINI_API_KEY=your_actual_api_key_here

5. Run Demo

# Run with ADK (requires ADK CLI)
adk run

# Or test locally
python adk_version/test_adk_agents.py

πŸ’» Usage

Basic Python Usage

import 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")

Batch Processing

# 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)}")

πŸ§ͺ Testing

Run All Tests

cd adk_version
python test_adk_agents.py

Test Coverage

  • βœ… 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%)


πŸ“ Project Structure

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

πŸš€ Deployment

Google Cloud (Agent Engine)

# 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

Local Development

# 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")

πŸŽ“ Real-World Impact

Use Cases

  1. Educational Institutions πŸŽ“

    • Make course materials accessible (ADA compliance)
    • Convert textbooks for all students
    • Support diverse learning needs
  2. Digital Libraries πŸ“š

    • Convert archives to accessible formats
    • Preserve historical documents accessibly
    • Enable researchers with disabilities
  3. E-commerce πŸ›’

    • Product images accessible to all users
    • Improve customer experience
    • Expand market reach
  4. Government πŸ›οΈ

    • Meet legal accessibility requirements
    • Serve constituents with disabilities
    • Ensure equal access to services
  5. Businesses πŸ’Ό

    • Comply with accessibility laws (ADA, WCAG)
    • Reduce legal liability
    • Expand customer base

Impact Numbers

  • 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

πŸ› οΈ Technical Excellence

Code Quality

  • βœ… Type hints on all functions
  • βœ… Comprehensive docstrings
  • βœ… Error handling with fallbacks
  • βœ… Input validation
  • βœ… Structured return values

ADK Best Practices

  • βœ… Proper agent configuration
  • βœ… Tool registration and schemas
  • βœ… Deployment configuration (agent.yaml)
  • βœ… Environment management
  • βœ… Production-ready structure

Testing & Documentation

  • βœ… 6 comprehensive tests (100% pass rate)
  • βœ… README with examples
  • βœ… API documentation
  • βœ… Capabilities mapping
  • βœ… Architecture diagrams

πŸ“Š Competition Compliance

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%) βœ…


🀝 Contributing

Contributions welcome! Please:

  1. Fork the repository
  2. Create feature branch (git checkout -b feature/AmazingFeature)
  3. Commit changes (git commit -m 'Add some AmazingFeature')
  4. Push to branch (git push origin feature/AmazingFeature)
  5. Open Pull Request

πŸ“„ License

This project is licensed under the MIT License - see LICENSE file for details.


πŸ™ Acknowledgments

  • 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

πŸ“ž Contact & Support


🎯 What's Next?

Future Enhancements

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

Roadmap

  • 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.

About

Multi-agent AI system for making digital content accessible. Uses Gemini Vision API for image alt-text generation and PyPDF2 for PDF text extraction. Built with Google ADK for the 5-Day AI Agents Intensive Course Capstone Project.

Resources

License

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages