A personal project for text/image similarity search on person datasets. It embeds images/text with SigLIP and indexes them in Qdrant for fast retrieval. Includes a Vite UI and a minimal Streamlit UI that call the same Fast API.
Dataset used: https://wanfb.github.io/dataset.html (VC-Clothes)
system.test.mp4
- Add a dataset class in
backend/dataset.py(must returnDatasetInfowithsamplesandmetadata). - Update
get_dataset()inbackend/index_dataset.pyto use your class and dataset path. - If you change model/collection/dim, update these in
backend/index_dataset.py:collection_namemodel_name,datasetembedding_dim(must match the model output)
- Keep
.envin sync withbackend/index_dataset.py(model + collection).
Root .env keys:
DATASET_ROOT, MODEL_NAME, MODEL_DATASET, EMBED_BATCH_SIZE,
QDRANT_COLLECTION, QDRANT_HOST, QDRANT_PORT, API_BASE_URL
Vite .env:
VITE_API_BASE_URL
- Start Qdrant:
docker compose -f backend/quadrant/dev_env/docker-compose.yaml up -d - Index:
python backend/index_dataset.py
- Env:
conda create -n person-search python=3.11conda activate person-search - Configure
.env(repo root) andfrontend/vite/.env. - Backend:
pip install -r requirements.txtuvicorn backend.fast:app --reload --port 8000 - Vite UI:
cd frontend/vitenpm installnpm run dev - Streamlit UI:
cd frontend/streamlitpip install -r requirements.txtstreamlit run app.py