Back to Supabase

Face similarity search

apps/docs/content/guides/ai/quickstarts/face-similarity.mdx

1.26.042.6 KB
Original Source

This guide will walk you through a "Face Similarity Search" example using Colab and Supabase Vecs. You will be able to identify the celebrities who look most similar to you (or any other person). You will:

  1. Launch a Postgres database that uses pgvector to store embeddings
  2. Launch a notebook that connects to your database
  3. Load the "ashraq/tmdb-people-image" celebrity dataset
  4. Use the face_recognition model to create an embedding for every celebrity photo.
  5. Search for similar faces inside the dataset.

<$Partial path="database_setup.mdx" />

Launching a notebook

Launch our semantic_text_deduplication notebook in Colab:

<a className="w-64" href="https://colab.research.google.com/github/supabase/supabase/blob/master/examples/ai/face_similarity.ipynb"

</a>

At the top of the notebook, you'll see a button Copy to Drive. Click this button to copy the notebook to your Google Drive.

Connecting to your database

Inside the Notebook, find the cell which specifies the DB_CONNECTION. It will contain some code like this:

python
import vecs

DB_CONNECTION = "postgresql://<user>:<password>@<host>:<port>/<db_name>"

# create vector store client
vx = vecs.create_client(DB_CONNECTION)

Replace the DB_CONNECTION with your own connection string. You can find the connection string on your project dashboard by clicking Connect.

<Admonition type='note'>

SQLAlchemy requires the connection string to start with postgresql:// (instead of postgres://). Don't forget to rename this after copying the string from the dashboard.

</Admonition> <Admonition type='note'>

You must use the "connection pooling" string (domain ending in *.pooler.supabase.com) with Google Colab since Colab does not support IPv6.

</Admonition>

Stepping through the notebook

Now all that's left is to step through the notebook. You can do this by clicking the "execute" button (ctrl+enter) at the top left of each code cell. The notebook guides you through the process of creating a collection, adding data to it, and querying it.

You can view the inserted items in the Table Editor, by selecting the vecs schema from the schema dropdown.

Next steps

You can now start building your own applications with Vecs. Check our examples for ideas.