Spaces:
Sleeping
Sleeping
github-actions[bot]
commited on
Commit
·
bd99642
1
Parent(s):
a308534
Deploy from GitHub Actions 2025-12-11_02:41:39
Browse files
app.py
CHANGED
|
@@ -1,7 +1,7 @@
|
|
| 1 |
# app.py
|
| 2 |
import os
|
| 3 |
import streamlit as st
|
| 4 |
-
from huggingface_hub import
|
| 5 |
from supabase import create_client
|
| 6 |
import numpy as np
|
| 7 |
import json
|
|
@@ -20,7 +20,7 @@ if not HF_API_TOKEN or not SUPABASE_URL or not SUPABASE_ANON_KEY:
|
|
| 20 |
st.stop()
|
| 21 |
|
| 22 |
# -------- CLIENTS ----------
|
| 23 |
-
|
| 24 |
supabase = create_client(SUPABASE_URL, SUPABASE_ANON_KEY)
|
| 25 |
|
| 26 |
# --------- HELPERS ----------
|
|
@@ -28,25 +28,22 @@ def compute_embedding(text: str) -> List[float]:
|
|
| 28 |
"""
|
| 29 |
Call HF Inference API for embeddings. Returns a flat list[float].
|
| 30 |
"""
|
| 31 |
-
#
|
| 32 |
-
|
| 33 |
-
|
| 34 |
-
|
| 35 |
-
|
| 36 |
-
|
| 37 |
-
|
| 38 |
-
|
| 39 |
-
|
| 40 |
-
vec = out
|
| 41 |
-
elif isinstance(out, (dict, str)):
|
| 42 |
-
# sometimes API returns a dict-like response; try to find 'embedding' key
|
| 43 |
-
if isinstance(out, dict) and "embedding" in out:
|
| 44 |
-
vec = out["embedding"]
|
| 45 |
-
else:
|
| 46 |
-
raise RuntimeError(f"Unexpected HF output: {out}")
|
| 47 |
else:
|
| 48 |
-
raise RuntimeError(f"Unexpected
|
| 49 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
| 50 |
return [float(x) for x in vec]
|
| 51 |
|
| 52 |
def search_supabase(query_vector: List[float], k: int = RESULTS_K):
|
|
|
|
| 1 |
# app.py
|
| 2 |
import os
|
| 3 |
import streamlit as st
|
| 4 |
+
from huggingface_hub import InferenceClient
|
| 5 |
from supabase import create_client
|
| 6 |
import numpy as np
|
| 7 |
import json
|
|
|
|
| 20 |
st.stop()
|
| 21 |
|
| 22 |
# -------- CLIENTS ----------
|
| 23 |
+
client = InferenceClient(token=HF_API_TOKEN)
|
| 24 |
supabase = create_client(SUPABASE_URL, SUPABASE_ANON_KEY)
|
| 25 |
|
| 26 |
# --------- HELPERS ----------
|
|
|
|
| 28 |
"""
|
| 29 |
Call HF Inference API for embeddings. Returns a flat list[float].
|
| 30 |
"""
|
| 31 |
+
# Use the new feature_extraction method
|
| 32 |
+
result = client.feature_extraction(text, model=EMBEDDING_MODEL)
|
| 33 |
+
|
| 34 |
+
# Convert to list of floats
|
| 35 |
+
if hasattr(result, 'tolist'):
|
| 36 |
+
# numpy array
|
| 37 |
+
vec = result.tolist()
|
| 38 |
+
elif isinstance(result, list):
|
| 39 |
+
vec = result
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 40 |
else:
|
| 41 |
+
raise RuntimeError(f"Unexpected embedding result type: {type(result)}")
|
| 42 |
+
|
| 43 |
+
# Flatten if nested (some models return [[...]])
|
| 44 |
+
if isinstance(vec, list) and len(vec) > 0 and isinstance(vec[0], list):
|
| 45 |
+
vec = vec[0]
|
| 46 |
+
|
| 47 |
return [float(x) for x in vec]
|
| 48 |
|
| 49 |
def search_supabase(query_vector: List[float], k: int = RESULTS_K):
|