Code_LLM / src /core /engine.py
AnatoliiG
split code
42fa16e
raw
history blame
1.17 kB
import asyncio
from huggingface_hub import hf_hub_download
from llama_cpp import Llama
from src.core.config import settings
class ModelEngine:
def __init__(self):
self.llm = None
self.lock = asyncio.Lock()
self._load_model()
def _load_model(self):
try:
model_path = hf_hub_download(
repo_id=settings.REPO_ID, filename=settings.FILENAME
)
self.llm = Llama(
model_path=model_path,
n_ctx=settings.CONTEXT_SIZE,
n_threads=settings.N_THREADS,
n_gpu_layers=settings.N_GPU_LAYERS,
verbose=True,
)
except Exception as e:
print(f"Error loading model: {e}")
def generate(self, messages, max_tokens, temperature, stream=True):
if not self.llm:
raise RuntimeError("Model not loaded")
return self.llm.create_chat_completion(
messages=messages,
max_tokens=int(max_tokens),
temperature=float(temperature),
stream=stream,
)
# Создаем синглтон
engine = ModelEngine()