import gradio as gr import torch from transformers import AutoModelForCausalLM, AutoTokenizer from peft import PeftModel import re import json from datetime import datetime # ── Load model ─────────────────────────────────────────────── print("Loading base model...") BASE_MODEL = "Qwen/Qwen2.5-Coder-7B-Instruct" ADAPTER = "likithyadavv/codementor-7b" tokenizer = AutoTokenizer.from_pretrained(BASE_MODEL, trust_remote_code=True) tokenizer.pad_token = tokenizer.eos_token base_model = AutoModelForCausalLM.from_pretrained( BASE_MODEL, dtype=torch.float16, trust_remote_code=True, low_cpu_mem_usage=True ) model = PeftModel.from_pretrained(base_model, ADAPTER, is_trainable=False) model = model.merge_and_unload() device = "cuda" if torch.cuda.is_available() else "cpu" model = model.to(device) model.eval() print(f"✅ Model ready on {device}!") # ── Language detection ─────────────────────────────────────── def detect_language(text): text_lower = text.lower() langs = { "Java": ["java", "system.out", "public class", "import java", "scanner"], "Python": ["python", "def ", "print(", "elif", "range("], "C++": ["c++", "cout", "#include", "cin", "namespace"], "C": ["printf", "scanf", "#include