Skip to content

radames/sentence-embeddings-visualization

Repository files navigation

title emoji colorFrom colorTo sdk app_file pinned
Sentence Embeddings Visualization
📈
green
indigo
gradio
app.py
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.