How kavyapushpala/foodsheild-ai works
FoodShield AI is a food-product analysis application with a separate regulatory Q&A feature. The main workflow accepts a product image and/or barcode, analyzes product and safety signals, and returns results to the web UI. The regulatory path retrieves source material and generates a grounded answer. The analysis service and RAG flow are supported by sampled source; frontend and API wiring beyond the sampled entry points is inferred only where module names and documented responsibilities indicate it.
Main entry points: analysis_service.py Analysis orchestrator · rag.py RAG endpoint · Analyze.tsx Analyze page · main.py FastAPI application
Components 24
Web application
- App routes
frontend/src/App.tsx - Analyze page
frontend/src/pages/Analyze.tsx - Analysis state
frontend/src/hooks/useAnalysis.ts - Analysis client
frontend/src/services/analysisService.ts - HTTP client
frontend/src/services/api.ts - Upload and barcode UI
frontend/src/components/UploadPanel.tsx - Analysis results UI
frontend/src/components/ResultCard.tsx
API boundary
- FastAPI application
backend/app/main.py - Analysis endpoint
backend/app/api/analyze.py - RAG endpoint
backend/app/api/rag.py
Product analysis
- Analysis orchestrator
backend/app/services/analysis_service.py - OCR extraction
backend/app/services/ocr_service.py - Product extraction
backend/app/services/product_extraction_service.py - Barcode validation
backend/app/services/barcode_service.py - Product lookup
backend/app/services/product_database_service.py - Recall lookup
backend/app/services/recall_service.py - Safety assessment
backend/app/services/safety_service.py - Authenticity assessment
backend/app/services/authenticity_service.py - Image ML analysis
backend/app/services/ml_service.py
Regulatory Q&A
- Regulation retrieval
backend/app/rag/rag_service.py - Regulation vectors
- Grounded answer generation
backend/app/rag/gemini_service.py
Other components
- Product user
- Gemini API
Connections 27
- Product user → App routes: opens
- App routes → Analyze page: routes to
- Product user → Upload and barcode UI: provides input
- Analyze page → Analysis state: uses
- Analysis state → Analysis client: submits
- Analysis client → HTTP client: posts request
- HTTP client → FastAPI application: sends HTTP
- FastAPI application → Analysis endpoint: dispatches
- Analysis endpoint → Analysis orchestrator: analyzes product
- Analysis orchestrator → OCR extraction: extracts text
- Analysis orchestrator → Product extraction: extracts fields
- Analysis orchestrator → Barcode validation: validates barcode
- Analysis orchestrator → Product lookup: looks up product
- Analysis orchestrator → Recall lookup: checks recalls
- Analysis orchestrator → Safety assessment: assesses safety
- Analysis orchestrator → Authenticity assessment: assesses authenticity
- Analysis orchestrator → Image ML analysis: runs image analysis
- Analysis endpoint → Analysis client: returns result
- Analyze page → Analysis results UI: renders result
- Product user → RAG endpoint: asks question
- FastAPI application → RAG endpoint: dispatches
- RAG endpoint → Regulation retrieval: retrieves context
- Regulation retrieval → Regulation vectors: queries
- RAG endpoint → Grounded answer generation: generates answer
- Regulation retrieval → RAG endpoint: returns context and sources
- Grounded answer generation → Gemini API: requests completion
- Gemini API → Grounded answer generation: returns answer