Submission
User or Telegram session starts capture
Retail, store, channel, and operator context are attached here.
Connected to live API
Operational reference for how OCR price tags move through ingestion, Gemini OCR, matching, review, and catalog learning, plus the core table relations behind that flow.
Operational flow from submission capture to review outcome and alias learning.
User or Telegram session starts capture
Retail, store, channel, and operator context are attached here.
1..N price-tag photos arrive into submission
Unreadable photos can be flagged for resend before completion.
One processing batch per uploaded photo
Tracks batch status, source, submission link, and OCR lifecycle.
Photo metadata and storage object key
Original file stays in storage; preview can be delivered separately.
Extract text and item regions from the tag
Produces raw item candidates with bbox, text, barcode, price, and unit.
OCR output saved per detected item
Stores raw text, barcode, price, promo price, unit text, and category hints.
Normalize and parse matching signals
Text normalization, brand cleanup, size parsing, type and variant tokens.
Exact barcode match first, then candidate shortlist
Rule-based scoring compares barcode, size, brand, token overlap, and category.
Second opinion for ambiguous cases
LLM suggests the most likely candidate and whether human review is needed.
Persist shortlist and final machine decision
Stores top candidate, score, decision source, and match status.
Only uncertain or policy-sensitive items surface here
Operator sees photo, OCR extraction, candidates, and decision metadata.
Operator confirms or rejects the match
Manual review can resolve borderline cases and improve future quality.
Final human moderation state
Confirmed items reinforce product links; rejected items stay out of auto-match.
Alias learning for future OCR variants
Confirmed mappings can create aliases to improve later recognition accuracy.
Key state groups used by operations during ingestion, OCR, and moderation.
High-signal summary for staff who need the process, not backend code.