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
|