1from transformers import AutoTokenizer, AutoModelForCausalLM
2from peft import PeftModel
3import torch
4
5base_model_id = "codellama/CodeLlama-7b-instruct-hf"
6adapter_id = "harsharajkumar273/api-security-qlora"
7
8tokenizer = AutoTokenizer.from_pretrained(adapter_id, use_fast=False)
9
10base = AutoModelForCausalLM.from_pretrained(
11 base_model_id,
12 torch_dtype=torch.float16,
13 device_map="auto",
14)
15model = PeftModel.from_pretrained(base, adapter_id)
16model.eval()
17
18code_snippet = """
19@app.route('/user/<int:user_id>')
20def get_user(user_id):
21 query = f"SELECT * FROM users WHERE id = {user_id}"
22 result = db.execute(query)
23 return jsonify(result)
24"""
25
26prompt = f"[INST] Analyze this API endpoint for security vulnerabilities:\n\n{code_snippet} [/INST]"
27inputs = tokenizer(prompt, return_tensors="pt").to(model.device)
28
29with torch.no_grad():
30 outputs = model.generate(**inputs, max_new_tokens=512, temperature=0.1)
31
32print(tokenizer.decode(outputs[0], skip_special_tokens=True))
This adapter is the default model in the
API Security Scanner project. It is loaded automatically — no manual path configuration needed:
1git clone https://github.com/harsharajkumar/api-security
2cd api-security
3pip install -r requirements.txt
4streamlit run app.py
The scanner will download this adapter from the Hub on first run and cache it locally.