TasteTrend Analytics
RAG-powered intelligence layer over 74k+ restaurant reviews across 200+ locations
74k+ reviews accumulated across Google, TripAdvisor, and internal channels — no queryable layer.
Inspect retrieval
Watch one question move through the retrieval stack: query, ranked chunks, citations, and grounded answer.
Business Impact
OutcomesAnalysis time per cycle: 3–5 weeks
Analysis time per cycle: < 4 hours
The review corpus became a queryable operational asset. Analysis time dropped from multi-week sprints to sub-four-hour sessions. Every generated insight is traceable to a specific cited review. The team now runs ad-hoc queries — "What are the top service complaints in Q4 across downtown locations?" — and receives grounded answers in seconds.
Engineering Evaluation
Nightly evalWhy This Is Hard
4 engineering challengesHallucination on multi-location queries
when a query spans ambiguous location signals, the LLM blended review content across sites. Solved by injecting explicit location metadata as context anchors in the system prompt and requiring per-citation location attribution in the output schema.
Near-duplicate review noise at scale
chain-level copy-paste reviews (same text across multiple franchise locations) inflated the corpus without adding information. MinHash LSH at a 0.85 Jaccard threshold, applied at ingestion, removed ~12% of raw corpus volume as near-duplicates.
Incremental index updates without full reindex
FAISS flat indexes do not support in-place deletion. Solved via an ID map append-and-compact strategy: new embeddings appended to a staging index, merged into main during off-peak compaction triggered when delta exceeds 5% of total.
Multilingual corpus (EN/HU/DE)
text-embedding-3-small outperformed multilingual-e5-large and mE5 on mixed-language retrieval recall in internal benchmarks on this specific corpus. Language detection is applied at ingestion to enable language-band filtering at retrieval time.
Engineering Depth
5 topics · click to expandTwo-stage retrieval: FAISS IVF100 flat index returns top-20 ANN candidates in ~40ms, followed by BGE-reranker-large cross-encoder scoring each candidate against the full query text. Top-5 advance to generation. The reranker adds ~180ms latency but improved Recall@5 by 11 pp over retrieve-only in internal A/B evaluation on 150 labelled queries. Metadata pre-filters on location/date run before ANN, reducing search space by up to 60% on scoped queries.