Spaces:
Runtime error
Runtime error
| # βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ | |
| # utils/embedder.py | |
| # Handles all embedding calls via your Gradio Space API | |
| # βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ | |
| import numpy as np | |
| from gradio_client import Client | |
| import os | |
| class HFEmbedder: | |
| """ | |
| Calls your HF Gradio Space to get embeddings. | |
| No local model download needed β works like an API. | |
| """ | |
| def __init__(self, space: str = None): | |
| self.space = space or os.getenv("GRADIO_SPACE", "your-username/rag-embedder-app") | |
| self.client = None | |
| self._connect() | |
| def _connect(self): | |
| print(f"Connecting to Gradio Space: {self.space}") | |
| self.client = Client(self.space) | |
| print("Embedder ready!") | |
| def embed(self, text: str) -> np.ndarray: | |
| """Embed a single text string.""" | |
| result = self.client.predict(text, api_name="/predict") | |
| return np.array(result, dtype=np.float32) | |
| def embed_batch(self, texts: list) -> np.ndarray: | |
| """Embed a list of texts.""" | |
| print(f"Embedding {len(texts)} documents...") | |
| vectors = [self.embed(t) for t in texts] | |
| print("Embedding complete!") | |
| return np.array(vectors, dtype=np.float32) | |
| # ββ Quick test ββββββββββββββββββββββββββββββββββββββββββββββββ | |
| if __name__ == "__main__": | |
| embedder = HFEmbedder() | |
| vec = embedder.embed("Hello world") | |
| print(f"Vector shape : {vec.shape}") | |
| print(f"First 5 values: {vec[:5]}") | |