radames's picture
radames HF staff
update readme.md for github
e1d4045 unverified
metadata
title: Sentence Embeddings Visualization
emoji: 📈
colorFrom: green
colorTo: indigo
sdk: gradio
app_file: app.py
pinned: false

Hugging Face Spaces + Observable

Sentence Embeddings Visualization

Recently I've been exploring Hugging face Spaces and sentence-transformers to build an application to generate text embeddings and clustering visualization.

Currently, the quickest way to build interactive ML apps with Python (backend/frontend), afaik, is to use Streamlit or Gradio. To embed an Observable notebook on Streamlit, you can use this custom component streamlit-observable

This Observable notebook is the frontend application for this Hugging Face Spaces app.

This notebook explores another way to integrate Observable inside Hugging Face Spaces. Currently, HF Spaces supports Streamlit and Gradio or a simple static web page.

The concept here is to use this entire notebook as the frontend and data visualization application for the ML Flask/Python backend.

  • The index route renders a simple HTML template containing Observable Runtime API code.
  • A single function, triggered by a POST request to `run-umap`, returns a low dimensional representation of the original sentence transformers embeddings using UMAP and cluster analysis with HDBSCAN.
  • All the visualization and interactive magic happen on the Javascript code inside the Observable Notebook.