Spaces:
Build error
Build error
File size: 1,882 Bytes
5b96cb1 | 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 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 | # shared_models.py
import spacy
import logging
from typing import Optional
import numpy as np
from langchain_huggingface import HuggingFaceEmbeddings
logger = logging.getLogger(__name__)
class SharedModels:
_instance = None
_spacy_model = None
_embeddings_model = None
def __new__(cls):
if cls._instance is None:
cls._instance = super(SharedModels, cls).__new__(cls)
cls._instance._initialized = False
return cls._instance
def __init__(self):
if not self._initialized:
self._initialized = True
self._spacy_model = None
self._embeddings_model = None
logger.info("SharedModels initialisiert")
@property
def spacy_model(self):
"""Singleton-Zugriff auf das Spacy-Modell"""
if self._spacy_model is None:
logger.info("Initialisiere Spacy-Modell...")
try:
self._spacy_model = spacy.load("de_core_news_sm")
logger.info("Spacy-Modell erfolgreich geladen")
except Exception as e:
logger.error(f"Fehler beim Laden des Spacy-Modells: {str(e)}")
raise
return self._spacy_model
@property
def embeddings_model(self):
"""Singleton-Zugriff auf das Embeddings-Modell"""
if self._embeddings_model is None:
logger.info("Initialisiere Embeddings-Modell...")
try:
self._embeddings_model = HuggingFaceEmbeddings(
model_name="sentence-transformers/paraphrase-multilingual-mpnet-base-v2"
)
logger.info("Embeddings-Modell erfolgreich geladen")
except Exception as e:
logger.error(f"Fehler beim Laden des Embeddings-Modells: {str(e)}")
raise
return self._embeddings_model |