Inspiration
Online shopping can become overwhelming when users need to browse through many products before making a decision. A user may open one product, go back, check another one, compare different options, and eventually lose track of the products they were interested in. We wanted to make this process easier by turning product discovery into a conversational experience. Instead of navigating through many product pages manually, users can interact with an AI shopping assistant, explore different options, ask for alternatives, and continue the conversation while keeping the context of what they have already explored.
What it does
RayaShop-Agent is an AI-powered shopping assistant that helps users discover and explore products through natural conversation. Users can: Describe what they are looking for in natural language. Explore multiple product options. Ask for more or similar products. Refine their requests through follow-up questions. Maintain conversation context while exploring products. Save and retrieve user preferences for a more personalized experience. The goal is not simply to search for a product, but to make the process of discovering, exploring, and narrowing down choices easier.
How we built it
We built RayaShop-Agent around a LangGraph ReAct agent that can use tools to search the product catalog and manage user preferences. The backend is built with FastAPI, which handles communication between the frontend and the AI agent. For product retrieval, we implemented a hybrid search pipeline using Qdrant. It combines dense semantic search with sparse BM25 search to handle both natural-language queries and more specific product searches. We use PostgreSQL to store product data, user preferences, and persistent conversation state. The frontend uses React for the landing page and a lightweight JavaScript/CSS chat interface for the shopping experience. We also integrated LangSmith for tracing and observability, which helped us monitor and debug the agent, retrieval process, and LLM interactions. The entire application and its supporting services can be run using Docker Compose, making the project easier to configure and reproduce.
Challenges we ran into
One of the main challenges was building a retrieval system that could consistently return relevant products from natural-language requests. We had to work with both semantic similarity and keyword-based retrieval, and combine them in a way that produces useful results. Another challenge was maintaining persistent conversation state and user preferences while the agent interacts with different tools and services. We also had to debug the interaction between multiple components, including the LLM, agent, retrieval system, vector database, PostgreSQL, and backend.
Accomplishments that we're proud of
We are proud that RayaShop-Agent became a complete working application rather than just a simple chatbot. Some of the main accomplishments include: Building a real tool-using AI shopping agent. Implementing hybrid semantic + BM25 product retrieval. Supporting natural-language product discovery. Adding persistent user preferences and conversation state. Adding retrieval evaluation and LangSmith observability. Building a complete backend and frontend experience. Packaging the application and its supporting services with Docker Compose.
What we learned
This project taught us that building an AI agent is much more than connecting an LLM to a prompt. We learned how to work with: Agent orchestration using LangGraph. Hybrid information retrieval using vector search and BM25. Vector databases and embeddings. Persistent state and user preferences. Retrieval evaluation and observability. Connecting AI components with a real backend and frontend. Running a multi-service application using Docker. Most importantly, we learned how different components of an AI application need to work together to create a reliable user experience.
What's next for RayaShop-Agent
The next step is to make the shopping experience even more personalized and useful. We would like to improve product recommendations, strengthen conversational product comparison, expand personalization based on user preferences, and improve retrieval and evaluation. We also want to explore more e-commerce actions so the agent can eventually help users move from discovering products to completing their shopping journey.
Built With
- agent
- ai
- css
- genai
- javascript
- llm
- ml
- postgresql
- qdrant
- rag
- react
- tool
Log in or sign up for Devpost to join the conversation.