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)