Inspiration
We created Shopping Copilot because online shopping can be frustrating when shoppers are unsure what they want, add new requirements, or change their minds. Normal keyword search often forgets earlier details, so shoppers have to keep rewriting their requests. We wanted to make product search feel more like a helpful conversation.
What it does
Shopping Copilot remembers details such as category, brand, colour, material, size, budget and style. It updates these preferences when the shopper changes their mind while keeping information that is still useful.
For example, someone can first ask for black leather boots under $120 and then switch to white sneakers. Shopping Copilot understands the change and updates the results without making the shopper start again.
How we built it
We built the backend with Python, FastAPI, SQLite FTS5 and NumPy. The search system combines keyword matching with semantic search to find exact matches and related products.
We created the interface with Next.js, React, TypeScript and Tailwind CSS. The system runs locally and does not require an API key, paid service or external vector database.
Challenges we ran into
One challenge was deciding when to ask the shopper for more information. At first, the system asked too many questions, which slowed down the search and reduced its performance. We improved this by only asking questions when a request is too broad.
We also had to balance exact keyword matches with broader recommendations. We solved this by keeping the strongest keyword results while using semantic search to include other relevant products.
Another challenge was handling changes of mind. Instead of deleting the whole conversation, the system replaces only the preferences that conflict with the shopper’s new request.
Accomplishments that we're proud of
We tested Shopping Copilot on 200 public shopping sessions. It found the purchased product within the Top 10 results in 99% of the sessions and took an average of 2.38 conversation turns to reach the correct product.
It also improved the supplied baseline TechnicalScore from 0.1067 to 0.8663. We are especially proud that the main system works locally without relying on a paid service.
What we learned
We learned that asking more questions does not always improve the shopping experience. Sometimes it only slows the shopper down. Testing every change helped us balance accuracy, speed and useful guidance.
We also learned that the shopper’s current request should always be more important than preferences remembered from earlier conversations.
What's next for Shopping Copilot
Next, we want to improve how the system understands product descriptions, test better ranking methods and add more product information and images. We would also like to give shoppers more control over how their saved preferences are stored and deleted.
Log in or sign up for Devpost to join the conversation.