File size: 1,144 Bytes
2b94dbc
743476a
2b94dbc
 
 
 
 
743476a
 
2b94dbc
743476a
 
 
 
 
2b94dbc
 
 
743476a
 
 
 
2b94dbc
743476a
 
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
import logging
from sentence_transformers import SentenceTransformer

logger = logging.getLogger("Embedding-HuggingFace")

class EmbeddingManager:
    """
    EmbeddingManager phiên bản Hugging Face TỰ VẬN HÀNH.
    Sử dụng sentence-transformers để chạy trực tiếp trên CPU của Space.
    """
    def __init__(self, model_name="nomic-ai/nomic-embed-text-v1.5"):
        logger.info(f"🚀 Đang khởi tạo mô hình nhúng local: {model_name}")
        # Chạy trên CPU để tiết kiệm tài nguyên và tương thích tốt trên HF Free
        self.model = SentenceTransformer(model_name, trust_remote_code=True)
        logger.info("✅ Khởi tạo mô hình nhúng thành công.")

    def get_embedding(self, text):
        try:
            # Prefix 'search_query: ' là bắt buộc đối với mô hình Nomic khi dùng cho RAG retrieval
            query_text = f"search_query: {text}"
            embedding = self.model.encode(query_text)
            return embedding.tolist()
        except Exception as e:
            logger.error(f"Lỗi khi nhúng câu hỏi tại local: {e}")
            raise e