File size: 635 Bytes
4fdc679 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
# rag/modules/embedder.py
import math
from typing import List
from huggingface_hub import InferenceClient
from config import EMBED_MODEL, HF_TOKEN
_client = InferenceClient(model=EMBED_MODEL, token=HF_TOKEN)
def _l2_normalize(vec: List[float]) -> List[float]:
norm = math.sqrt(sum(x * x for x in vec)) or 1.0
return [x / norm for x in vec]
def get_embedding(text: str) -> List[float]:
# feature_extraction은 항상 2차원 배열 반환: [batch_size, embedding_dim]
embedding_2d = _client.feature_extraction(text)
vec = embedding_2d[0] # 첫 번째 행이 입력 문장의 벡터
return _l2_normalize(vec)
|