This project is a multi-turn shopping agent for TechJam Conversational E-Commerce Search: find a hidden target in a frozen 50,000-item apparel catalogue as early and as high in the Top 10 as possible, using only customer messages and an anonymised profile.

The agent never sees the hidden intent or target ID. Each turn it classifies the speech act, updates structured memory (category, constraints, declines, overrides), retrieves with SQLite FTS5 BM25 and reciprocal rank fusion, reranks with lexical signals plus an optional MiniLM blend, and asks one clarification: typed attributes first, then an open follow-up. While evidence is thin, it returns a short list so a speculative Top 10 cannot lock a poor first-hit rank.

This covers the challenge mix (Buying, Browsing, Intent Override, Boundary) without a paid LLM. On the 200-session public set: HitRate@10 0.995, MRR 0.824, MTTC 2.76, TechnicalScore 0.910 (lexical-only: 0.907). Token usage is zero.

Development tools: Cursor / VS Code, Python 3.10+, unittest, the organiser local evaluator, Git/GitHub.

APIs: None at scoring time. MiniLM runs locally via ONNX; Hugging Face is only the source of the public weights, not a live API.

Libraries and frameworks: Python standard library, SQLite FTS5, numpy, onnxruntime, Hugging Face tokenisers, and a bundled Xenova ONNX all-MiniLM-L6-v2.

Datasets and assets: Amazon Reviews 2023 (McAuley Lab, UCSD), Clothing_Shoes_and_Jewelry 50k catalogue; 200 public development sessions; Apache-2.0 MiniLM ONNX weights. Customer lines are simulated from product metadata. No manually labelled training set.

Built With

Share this project:

Updates

Submission history