← All projects
MULTIMODAL AI / 2024

Visual Semantic Search

Natural-language product discovery using shared text and image embeddings.

View source ↗
THE WORK

Text-to-image retrieval · Background encoding · Search API

CLIPFastAPICeleryRedisQdrant
AT A GLANCE

From a description to a product image.

The challenge
Connect text and images while keeping image encoding separate from the interactive search path.
The work
A Docker Compose application with a Streamlit interface, FastAPI service, background workers, and vector storage.
PREPARE THE CATALOG
  1. Product imagesCatalog input
  2. Celery + RedisEncoding jobs
  3. CLIPImage embeddings
  4. QdrantVector storage
SEARCH BY MEANING
  1. Text queryStreamlit interface
  2. FastAPI + CLIPQuery embedding
  3. QdrantSimilarity search
  4. Product matchesRanked images
Simplified system view. The source repository documents the services and local setup.
On this page3 sections

A product search experiment that connects a written description to relevant images. CLIP places language and images in a shared embedding space; a vector search retrieves nearby products.

Two paths, one search system

The system separates catalog preparation from interactive queries. Celery manages image-encoding jobs with Redis as its broker and result backend. Qdrant stores the resulting vectors.

For search, a Streamlit interface connects to a FastAPI backend. The query becomes an embedding that can be compared with the catalog’s image embeddings. Docker Compose brings the application services together for local use.

The engineering decision

Image encoding is background work; answering a search is interactive work. Keeping those paths separate makes their responsibilities explicit. The model is one part of the project—the API, job queue, storage, and interface make it usable.

What this demonstrates

The project connects multimodal retrieval with a concrete backend architecture. It is an open-source implementation; the repository does not publish a retrieval benchmark or production-scale performance results.

The source and setup instructions document the application. The Compose configuration shows how the services are connected.