subi333's picture
2nd update
fe2dc13
Raw
History Blame Contribute Delete
1.91 kB
from llama_cpp import Llama
from huggingface_hub import hf_hub_download
from pathlib import Path
import os
import logging
logger = logging.getLogger(__name__)
_model = None
def load_model():
global _model
if _model is None:
logger.info("Qwen2.5-coder-3b-instruct model loading started")
try:
# For dev
# BASE_DIR = Path(__file__).resolve().parent.parent
# model_path_qwen = BASE_DIR / "AiModels" / "CodingModel" / "qwen2.5-coder-3b-instruct-q4_k_m.gguf"
# model_path_qwen = os.environ.get('MODEL_PATH', str(model_path_qwen))
# For production
# Define a writeable cache path inside the user's home app directory
cache_dir = Path("/home/user/app/.cache/huggingface")
cache_dir.mkdir(parents=True, exist_ok=True)
model_path_qwen = hf_hub_download(
repo_id="bartowski/Qwen2.5-Coder-3B-Instruct-GGUF",
filename="Qwen2.5-Coder-3B-Instruct-Q4_K_M.gguf",
cache_dir=str(cache_dir) # <-- Force it to use the writeable folder
)
_model = Llama(
model_path=model_path_qwen,
n_ctx=4096,
n_threads=2, # adjust based on your CPU
verbose=False
)
logger.info("✅ Qwen2.5-coder-3b-instruct model loaded")
except Exception as e:
logger.exception("Failed to load Qwen2.5-coder-3b-instruct model")
def get_model():
return _model
# Do not bake the .gguf file into your Docker image. This makes your Docker builds incredibly slow and
# fills up your local storage.The Best Practice: Mount the folder containing your AI models as a Docker Volume
# on your Oracle Server.
# This allows your container to read the model file directly from the host system disk.