How essamdev47/-ai-invoice-processor works
AI Invoice Processor is a Streamlit application for uploading invoices and other documents, extracting text and structured fields, and reviewing and storing results. Its main path runs from upload through OCR and AI parsing to invoice persistence; the app also provides dashboard/history views and Excel export. Batch processing is a separate supported route. Source excerpts establish the batch calls and app dependencies, but omit most app control flow, so several UI-to-service links are documented or unverified rather than asserted as direct calls.
Main entry points: app.py Streamlit app · batch_processor.py Batch processor · ai_extractor.py AI field extraction · data_handler.py Invoice database
Components 10
User interface
- Streamlit app
app.py - Dashboard and history
app.py
Document processing
- Batch processor
batch_processor.py - OCR and PDF reader
ocr_engine.py - AI field extraction
ai_extractor.py
Persistence and export
- Extraction cache
cache_manager.py - Invoice database
data_handler.py - Excel export
data_handler.py
Other components
- User
- Groq AI service
Connections 13
- User → Streamlit app: uploads documents
README.md - Streamlit app → OCR and PDF reader: extracts text
app.py - Streamlit app → AI field extraction: parses fields
app.py - Streamlit app → Batch processor: dispatches batch
app.py - Batch processor → OCR and PDF reader: extracts text
batch_processor.py - Batch processor → AI field extraction: parses text
batch_processor.py - Batch processor → Invoice database: saves batch
batch_processor.py - AI field extraction → Extraction cache: reads and writes
ai_extractor.py - AI field extraction → Groq AI service: requests extraction
ai_extractor.py - Streamlit app → Invoice database: reads and writes
app.py - Streamlit app → Excel export: exports records
app.py - Invoice database → Dashboard and history: supplies invoice data
app.py - User → Dashboard and history: views records