ai-code-scanner-ui / test_model.py
mubi-613's picture
Initial clean commit: Fixed security issues and removed heavy checkpoints
168ae1c
Raw
History Blame Contribute Delete
1.4 kB
from transformers import AutoTokenizer, AutoModelForSequenceClassification
import torch
import torch.nn.functional as F
def predict_code(code_snippet):
# 1. Load the "Brain" we saved
model_path = "saved_model"
tokenizer = AutoTokenizer.from_pretrained(model_path)
model = AutoModelForSequenceClassification.from_pretrained(model_path)
# 2. Convert the code snippet into numbers (Tokens)
inputs = tokenizer(code_snippet, return_tensors="pt", truncation=True, max_length=128)
# 3. Run it through the AI without calculating gradients (faster)
with torch.no_grad():
outputs = model(**inputs)
# Convert raw numbers (logits) into percentages (probabilities)
probs = F.softmax(outputs.logits, dim=-1)
# 4. Show the result
safe_prob = probs[0][0].item()
vuln_prob = probs[0][1].item()
print("-" * 50)
print(f"CODE BEING TESTED:\n{code_snippet}")
print("-" * 50)
print(f"🛡️ Safe Probability: {safe_prob:.2%}")
print(f"⚠️ Vulnerable Probability: {vuln_prob:.2%}")
if vuln_prob > 0.5:
print("\nRESULT: 🚨 VULNERABLE CODE DETECTED!")
else:
print("\nRESULT: ✅ CODE LOOKS SAFE.")
print("-" * 50)
if __name__ == "__main__":
# Test with a dangerous example (SQL Injection)
my_code = 'query = f"SELECT * FROM users WHERE id = {user_input}"'
predict_code(my_code)