As featured on FSDL 2022
- Generate Embedding for Text-to-Image Similarity Search using OpenAI Clip Model.
- Perform Vector Similarity Search using Milvus Vector Database using Approximate Nearest Neighbour Search.
- REST API service using Flask to perform Text-to-Image Search.
- Search Engine User Interface built using Nodejs to perform Text-to-Image Search.
- Infrastructure Metric and ML Model Metric collection using Prometheus.
- Infrastructure Metric and ML Model Metric visualization using Grafana.
- Store Model Results in PostgreSQL Database for Offline Model Evaluation.
- Store User Feedback on the Search results using Redis.
- Data Ingestion Pipeline for Storage of Image Corpus on Google Cloud Storage.
- Data Migration between Google Store and Milvus Vector Database.
- Building Container Application for the following services:
- Search Engine Backend- [ML Inferece Engine]
- Search Engine UI
- Prometheus
- Grafana
- PostgreSQL
- Milvus
- Attu- GUI for Milvus
- Redis
- Container Orchestrate using Docker-Compose on Single Host Machine.
- Orchestrate Deployment using Kubernetes on Google Cloud.
# clone project
git clone https://github.com/u6yuvi/fsdl_project.git fsdl_project
cd fsdl_project/
git checkout docker_template_exp
# create conda environment [fsdl_project]
conda env create -f environment.yml
conda activate semsearch
#install packages
make pip-tools
Step 1 - Start Search Engine Services
cd semantic_search/
sudo docker-compose -f docker/docker-compose.yml up -d --build
Following services will be up and running:
- Search Inference Engine [ml_api]
- User Interface[search_ui]
- PostgreSQL[database]
- Redis[db]
- Prometheus[prometheus]
- Grafana[grafana]
- cadvisor[cadvisor]
Step 2 - Interacting with Search Engine
- Through User Interface[Semsearch UI]
- The web page is available at http://localhost:5173/
- For more details refer the link .
- Using Flask OpenAPI to send search requests.
- The web page is available at http://localhost:5000/ui
Step 3 - Interact with Monitoring Services
- Prometheus
- The web page is available at http://localhost:9090
- Grafana
- The web page is available at http://localhost:3000
- Login Grafana with username
admin
and passwordfoobar
.
For more detailed user guide refer Introduction.md
- Amit Sah
- Gabriela
- Kandpallucky
- Sandhya Govindaraju
- Utkarsh Vardhan