github-actions[bot] commited on
Commit
bd99642
·
1 Parent(s): a308534

Deploy from GitHub Actions 2025-12-11_02:41:39

Browse files
Files changed (1) hide show
  1. app.py +17 -20
app.py CHANGED
@@ -1,7 +1,7 @@
1
  # app.py
2
  import os
3
  import streamlit as st
4
- from huggingface_hub import InferenceApi
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
- inference = InferenceApi(repo_id=EMBEDDING_MODEL, token=HF_API_TOKEN)
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
- # For sentence-transformers style models, the inference API often returns list[list[float]]
32
- out = inference(inputs=text)
33
- # handle error dict
34
- if isinstance(out, dict) and out.get("error"):
35
- raise RuntimeError(out.get("error"))
36
- # flatten edge cases
37
- if isinstance(out, list) and len(out) > 0 and isinstance(out[0], list):
38
- vec = out[0]
39
- elif isinstance(out, list) and all(isinstance(x, (int, float)) for x in out):
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 HF output type: {type(out)}")
49
- # ensure floats
 
 
 
 
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):