Spaces:
Running
Running
File size: 1,153 Bytes
2ec1a9c 3671814 2ec1a9c 3671814 2ec1a9c 3671814 2ec1a9c 3671814 2ec1a9c 3671814 2ec1a9c 3671814 2ec1a9c 3671814 2ec1a9c 3671814 2ec1a9c 3671814 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 | """
Loads pre-computed narration embeddings and metadata from the Space repo.
No GPU, no video downloads needed at runtime.
"""
import json
import numpy as np
from pathlib import Path
_PRECOMPUTED = Path(__file__).parent / "precomputed"
_metadata: list | None = None
_embeddings: np.ndarray | None = None
def get_demo_assets() -> tuple[list, np.ndarray]:
"""Returns (narrations_metadata list, narration_embeddings ndarray [N, 256])."""
global _metadata, _embeddings
if _metadata is not None and _embeddings is not None:
return _metadata, _embeddings
emb_path = _PRECOMPUTED / "narration_embeddings.npy"
meta_path = _PRECOMPUTED / "narrations_metadata.json"
if not emb_path.exists() or not meta_path.exists():
raise FileNotFoundError(
f"Pre-computed assets not found in {_PRECOMPUTED}. "
"Make sure precomputed/ folder is included in the Space repo."
)
_embeddings = np.load(str(emb_path))
with open(meta_path) as f:
_metadata = json.load(f)
print(f"Loaded {len(_metadata)} narrations, embeddings {_embeddings.shape}")
return _metadata, _embeddings
|