metadata
license: mit
title: Data Extractor Using Gemini
sdk: docker
emoji: π
colorFrom: yellow
colorTo: blue
π Financial Data Extractor Using Gemini
A powerful AI-driven financial document analysis system that automatically extracts, organizes, and generates professional Excel reports from financial documents using Google's Gemini AI models.
π Features
Core Functionality
- π Multi-format Document Support: PDF, DOCX, TXT, and image files
- π Intelligent Data Extraction: AI-powered extraction of financial data points
- π Smart Data Organization: Automatic categorization into 12+ financial categories
- π» Excel Report Generation: Professional multi-worksheet Excel reports with charts
- π― Real-time Processing: Live streaming interface with progress tracking
Advanced Capabilities
- π€ Multi-Agent Workflow: Specialized AI agents for extraction, arrangement, and code generation
- πΎ Session Management: Persistent storage with SQLite caching
- π Auto-shutdown: Intelligent resource management for cloud deployments
- π± Modern UI: Beautiful Gradio-based web interface
- π Cross-platform: Works on Windows, Mac, and Linux
- π³ Docker Support: Containerized deployment ready
ποΈ Architecture
The system uses a sophisticated multi-agent workflow powered by the Agno framework:
π Document Upload
β
π Data Extractor Agent
β (Structured Financial Data)
π Data Arranger Agent
β (Organized Categories)
π» Code Generator Agent
β (Python Excel Code)
π Excel Report Output
Agent Specialization
- Data Extractor: Extracts financial data points with confidence scoring
- Data Arranger: Organizes data into 12+ professional categories
- Code Generator: Creates Python code for Excel report generation
π Requirements
System Requirements
- Python 3.8+
- Google API Key (for Gemini models)
- 2GB+ RAM recommended
- Cross-platform compatible
Dependencies
agno>=1.7.4
gradio
google-generativeai
PyPDF2
Pillow
python-dotenv
pandas
matplotlib
openpyxl
python-docx
lxml
markdown
requests
seaborn
sqlalchemy
websockets
π Quick Start
1. Clone the Repository
git clone <repository-url>
cd Data_Extractor_Using_Gemini
2. Install Dependencies
pip install -r requirements.txt
3. Configure Environment
Create a .env
file:
GOOGLE_API_KEY=your_gemini_api_key_here
4. Run the Application
python app.py
The application will be available at http://localhost:7860
π³ Docker Deployment
Build and Run
docker build -t financial-extractor .
docker run -p 7860:7860 --env-file .env financial-extractor
Environment Variables
GOOGLE_API_KEY
: Your Google Gemini API keyINACTIVITY_TIMEOUT_MINUTES
: Auto-shutdown timeout (default: 30)
π Usage Guide
1. Upload Document
- Drag and drop or select your financial document
- Supported formats: PDF, DOCX, TXT, PNG, JPG, JPEG
2. Select Processing Mode
- Quick Analysis: Standard extraction and organization
- Custom Prompts: Use predefined prompt templates for specific document types
3. Monitor Progress
- Real-time streaming interface shows each processing step
- Progress indicators for all workflow stages
- Live terminal output for code execution
4. Download Results
- Professional Excel report with multiple worksheets
- Organized data categories with charts and formatting
- All intermediate files available for download
π Output Structure
The generated Excel reports include:
Worksheets
- Summary: Executive overview with key metrics
- Revenue: Income and revenue streams
- Expenses: Operating and non-operating expenses
- Assets: Current and non-current assets
- Liabilities: Short-term and long-term liabilities
- Equity: Shareholder equity components
- Cash Flow: Cash flow statements
- Ratios: Financial ratio analysis
- Charts: Visual representations of key data
- Raw Data: Original extracted data points
Features
- Professional formatting with consistent styling
- Interactive charts and visualizations
- Dynamic period handling (auto-detects years/quarters)
- Cross-referenced data validation
- Print-ready layouts
π§ Configuration
Model Settings
Configure AI models in config/settings.py
:
- Data Extractor Model
- Data Arranger Model
- Code Generator Model
- Thinking budgets and retry settings
Prompt Customization
Customize agent instructions in instructions/agents/
:
data_extractor.md
: Data extraction promptsdata_arranger.md
: Data organization promptscode_generator.md
: Excel generation prompts
Workflow Configuration
Modify workflow behavior in workflow/financial_workflow.py
:
- Agent configurations
- Tool assignments
- Output formats
π οΈ Development
Project Structure
βββ app.py # Main Gradio application
βββ workflow/ # Core workflow implementation
βββ instructions/ # Agent instruction templates
βββ prompts/ # Prompt gallery configurations
βββ config/ # Application settings
βββ utils/ # Utility functions
βββ static/ # Static assets
βββ models/ # Data models
βββ terminal_stream.py # Real-time terminal streaming
Key Components
- WorkflowUI: Main interface controller
- FinancialDocumentWorkflow: Core processing pipeline
- AutoShutdownManager: Resource management
- TerminalLogHandler: Real-time logging
- PromptGallery: Template management
π Security & Privacy
- Local Processing: All document processing happens locally
- No Data Storage: Documents are processed and cleaned up automatically
- API Key Security: Environment-based configuration
- Session Isolation: Each session has isolated temporary directories
π Deployment Options
Local Development
python app.py
Production (Gunicorn)
gunicorn -w 4 -b 0.0.0.0:7860 app:app
Cloud Platforms
- Hugging Face Spaces: Ready for deployment
- Google Cloud Run: Containerized deployment
- AWS/Azure: Standard container deployment
π€ Contributing
- Fork the repository
- Create a feature branch
- Make your changes
- Add tests if applicable
- Submit a pull request
π License
This project is licensed under the MIT License - see the LICENSE file for details.
π Support
Common Issues
- API Key Errors: Ensure your Google API key is valid and has Gemini access
- Memory Issues: Increase system RAM or reduce document size
- Processing Timeouts: Check network connectivity and API quotas