Inspiration
Online shopping search works well when users know exactly what they want, but real shopping conversations are often vague. A customer might ask for something like “comfortable shoes for travelling” without specifying a brand, material, style, or budget. Traditional keyword search fails to understand the context and user intent behind queries, and may return products that are technically related but not actually useful when faced with incomplete preferences. TikTouch addresses this problem by acting as a conversational e-commerce search agent. The system keeps track of their preferences across multiple turns, asks useful clarification questions when information is missing, and continuously refines its product recommendations. The goal is to identify and rank the product that best matches the user's underlying intent within a maximum of 10 conversational turns.
What it does
TikTouch uses a hybrid conversational product-retrieval pipeline that combines lexical search, semantic similarity, conversational memory, and preference-aware reranking.
How we built it
For lexical retrieval, we use BM25 through SQLite FTS5 to identify products containing important keywords and attributes from the user's request. We also use TF-IDF with cosine similarity to compare user preferences with product metadata. For broader exploratory requests, TikTouch supports dense semantic retrieval using the sentence-transformers/all-MiniLM-L6-v2 model. This allows semantically related products to match even when the query and product description use different words.
The system selects its retrieval approach according to the user's intent. Vague browsing requests benefit from semantic retrieval, while more specific buying requests use BM25 to retrieve a focused candidate pool.
TikTouch maintains a structured conversational memory containing attributes such as category, material, color, size, style, brand, budget, feature, and use case. It also records hard requirements and conversation history. When users change their minds—for example, “I don't want black anymore”—the outdated preference is removed without clearing unrelated context. Answers to clarification questions are associated with the relevant memory field so they can influence later retrieval and ranking.
After retrieval, a preference-aware reranker combines normalised BM25 relevance with bonuses for products that match the user's current preferences. Hard requirements receive stronger bonuses, known over-budget products are penalised, and products with missing prices are retained to avoid unnecessarily reducing recall. The reranker only reorders BM25's strongest candidates, allowing it to refine result quality without displacing already-relevant products.
The agent prioritises clarification questions that reveal useful product features early. As more information is collected, TikTouch updates its memory, retrieval query, and ranking signals. This allows the system to balance two goals: asking useful questions and recommending relevant products as quickly as possible.
Challenges we ran into
Given the limited time, we were unable to implement a complex trained learning-to which could reliably recover relevant products ranked outside the initial result set. However, we explored solutions which we could implement if we had more time, such as to train or validate ranking weights using a separate held-out dataset and explore a cross-encoder or learning-to-rank model for second-stage ranking to further improve our solution.
Accomplishments that we're proud of
We're proud of building the whole pipeline, from implementing a conversational memory that facilitates overriding, identifying whether a user is browsing or buying, and then implementing a dense retrieval system or BM25 system to search for recommendations, and lastly having a re-ranking feature to ensure the recommendations are throughly ranked.
What we learned
Through the project, we learnt better time management and communication skills. Especially as we were working under a tight deadline, prompt communication was key in helping us finish the work on time.
What's next for Tiktouch
If possible, we would explore further ways to improve every step of the pipeline, including conversational memory, browsing or buying identification, search systems and ranking features.
Log in or sign up for Devpost to join the conversation.