Spaces:
Running
Running
File size: 1,017 Bytes
166f42d 77d65d0 166f42d | 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 | from openai import OpenAI
from config import settings
from typing import List, Tuple, Optional
class BGEM3Embedder:
"""Wraps the NVIDIA serverless BGE-M3 endpoint."""
MODEL = "baai/bge-m3"
def __init__(self):
self.client = OpenAI(
api_key=settings.NVIDIA_NIM_API,
base_url="https://integrate.api.nvidia.com/v1",
)
def embed(self, text: str) -> List[float]:
response = self.client.embeddings.create(
input=[text],
model=self.MODEL,
encoding_format="float",
extra_body={"truncate": "END"}, # truncate instead of error on long text
)
return response.data[0].embedding
def embed_many(self, texts: List[str]) -> List[List[float]]:
response = self.client.embeddings.create(
input=texts,
model=self.MODEL,
encoding_format="float",
extra_body={"truncate": "END"},
)
return [d.embedding for d in response.data] |