EatInformed AI
An AI-powered food label intelligence platform. Uploads label images to extract ingredients, highlight health risks, identify food additives, and verify dietary compliance.
OCR Accuracy
99.2%
Precision Text Extraction
Inference Pipeline
Decoupled
2-Step Execution Flow
Infrastructure
NVIDIA NIM
API Workflow Orchestration
Storage Layer
SQLite
Local Search & History Cache
The Problem & Solution
Food product packaging labels are intentionally designed to be hard to decode. Brands mask sugar percentages under different terms, group controversial preservatives inside cryptic E-numbers, and split allergens into tiny print.
EatInformed provides an AI-powered visual analysis pipeline. By separating image OCR from clinical reasoning, the app translates package labels into clear hazard dashboards, checking dietary compliance (vegan, vegetarian, gluten-free) and flagging harmful food additives.
Key Features
- ✓ Real-Time Mobile Camera Snapshot Ingestion
- ✓ Detailed Nutritional Facts Table Parser
- ✓ Allergen and E-number Preservative Spotter
- ✓ Graceful Degradation & Schema Fallbacks
- ✓ Firebase Authentication & Protected Routes
Decoupled AI Pipeline
Passing high-resolution label photos directly to a single model for both OCR extraction and health analysis causes timeouts and context loss. We solve this by decoupling extraction and reasoning into two stages.
OCR & Nutrition Inference Graph
Llama 3.2 Vision reads ingredient text, and Llama 3.3 70B processes clinical nutrition risks and matches additives.
Systems Engineering Control Panel
Visualizing the OCR ingestion pipelines, JSON repair trace, and codebase blueprints.
# Initializing NVIDIA NIM inference orchestrator...
[CAMERA] Label photo uploaded. Size: 1.4MB base64
[STEP-1] Initiating OCR text extraction via Llama-3.2-11b-vision-instruct
[OCR] Vision parse completed in 1.2s. Extracted text catalog length: 1,200 chars
[STEP-2] Initiating deep health assessment via Llama-3.3-70b-instruct
[AI-WARN] Malformed JSON string returned. Launching repair sequence...
[REPAIR] Stage 1: Removed codeblock markdown backticks
[REPAIR] Stage 2: Stripped unescaped trailing commas from arrays
[REPAIR] Stage 3: Closed unbalanced curly braces (recovered: OK)
[DATABASE] Saving food product details to SQLite local index
[SUCCESS] Evaluation complete. Latency: 2.1s total. Health Score: 42/100 (HIGH RISK)
{
"product_name": "Ultra-Processed Snack Bar",
"nova_group": 4,
"ingredients": ["sugar", "palm oil", "artificial flavor", "preservative E211"],
"allergens": ["soy", "gluten"],
"additives_found": [
{ "code": "E211", "name": "Sodium Benzoate", "risk_level": "HIGH" }
],
"nutrients": {
"sugars_per_100g": 38.5,
"saturated_fat_per_100g": 12.0
}
}JSON Recovery Parser
AI models frequently output broken JSON blocks with trailing commas or unescaped quotes. I built a custom 4-stage regex repair handler that captures and cleans these outputs, achieving 99.8% recovery rates.
Decoupled Processing
Splitting OCR extraction and nutritional analysis into two separate model calls prevents timeouts and ensures maximum accuracy, allowing local fallbacks to function even if the main reasoning engine fails.
├── src/ai/ # AI workflows
├── flows/ # Pipelines
│ ├── analysis.ts # 2-step OCR
│ └── safety.ts # Additive check
└── nim.ts # Regex recovery wrap
├── src/app/ # Next.js router
├── src/components/ # Camera & Charts
└── database.sqlite # Product history