import torch
from transformers import AutoModelForCausalLM, AutoTokenizer, BitsAndBytesConfig
from peft import PeftModel
BASE = "mistralai/Mistral-7B-Instruct-v0.3"
ADAPTER = "<HF_KULLANICI>/secllm-tr-mistral-7b-qlora"
bnb = BitsAndBytesConfig(load_in_4bit=True, bnb_4bit_quant_type="nf4",
bnb_4bit_compute_dtype=torch.bfloat16)
tok = AutoTokenizer.from_pretrained(BASE)
model = AutoModelForCausalLM.from_pretrained(BASE, quantization_config=bnb, device_map="auto")
model = PeftModel.from_pretrained(model, ADAPTER)
SYSTEM = ("Sen SecLLM-TR, siber güvenlik alanında uzmanlaşmış Türkçe bir asistansın. "
"Teknik olarak doğru ve profesyonel yanıtlar verirsin.")
soru = "SQL injection saldırısından nasıl korunurum?"
msgs = [{"role": "user", "content": f"{SYSTEM}\n\n{soru}"}]
inputs = tok.apply_chat_template(msgs, add_generation_prompt=True, return_tensors="pt").to(model.device)
out = model.generate(inputs, max_new_tokens=512, do_sample=True, temperature=0.7)
print(tok.decode(out[0][inputs.shape[1]:], skip_special_tokens=True))