Multi2vec Bind module

🎯 Overview

This is a multi modal inference container it uses Meta's open source ImageBind implementation as base for this module.

📦 Requirements

The best way to start working with it would be to first to create a virtual env, activate it and adjust PYTHONPATH environment variable to have the modules to be visible to python.

  1. Create a new virtual environment
python3 -m venv .venv
source .venv/bin/activate
export PYTHONPATH="${PYTHONPATH}:${PWD}:${PWD}/ImageBind"
  1. Install all dependencies specified in the requirements.txt file
pip3 install -r requirements.txt
  1. Install additional dependencies needed for running tests
pip3 install -r requirements-test.txt
  1. Download the ImageBind model locally
python3 download.py
  1. Run the inference server
uvicorn app:app --host 0.0.0.0 --port 8000

💡 Testing

For sanity checks that to check that all works properly you can run our smoke tests against your server

python3 smoke_tests.py

🐳 Docker support

In order to build locally a docker image one can run this command in project's root folder

LOCAL_REPO="local-bind" ./cicd/build.sh

In order to test the built docker image run this command in project's root folder

LOCAL_REPO="local-bind" ./cicd/test.sh

🔗 Useful Resources