boraoxkan/codereview-ai
08
<div align="center">
CodeReview AI
Automated Code Review with Fine-tuned LLMs
  
</div>
Overview
A fine-tuned code review model that automatically detects bugs, security vulnerabilities, and code quality issues across multiple programming languages.
Key Features
- Multi-Language: Python, JavaScript, Java, C++, Go, Rust, TypeScript, C#, SQL
- Security Focus: Detects OWASP Top 10 vulnerabilities
- Quality Scoring: 0-100 score with explanations
- Auto-Fix: Provides corrected code snippets
- Efficient: 4-bit quantization, runs on 8GB VRAM
Model Details
Detected Issues
<table> <tr> <td>
Security
- SQL Injection
- Cross-Site Scripting (XSS)
- Command Injection
- Hardcoded Credentials
- Path Traversal
- Insecure Deserialization
</td> <td>
Code Quality
- Memory Leaks
- Race Conditions
- Null Pointer Dereference
- Off-by-One Errors
- Resource Leaks
- Infinite Loops
</td> </tr> </table>
Quick Start
from unsloth import FastLanguageModel
# Load model
model, tokenizer = FastLanguageModel.from_pretrained(
model_name="boraoxkan/codereview-ai",
max_seq_length=2048,
load_in_4bit=True,
)
FastLanguageModel.for_inference(model)
# Analyze code
prompt = """Below is an instruction that describes a task, paired with an input that provides further context. Write a response that appropriately completes the request.
### Instruction:
Analyze this Python code for defects.
### Input:
def get_user(username):
query = "SELECT * FROM users WHERE username = '" + username + "'"
cursor.execute(query)
return cursor.fetchone()
### Response:
"""
inputs = tokenizer([prompt], return_tensors="pt").to("cuda")
outputs = model.generate(**inputs, max_new_tokens=512, temperature=0.1)
result = tokenizer.decode(outputs[0])Example Output
Input Code (SQL Injection vulnerability):
def get_user(username):
query = "SELECT * FROM users WHERE username = '" + username + "'"
cursor.execute(query)Model Output:
{
"code_quality_score": 20,
"critical_issues": [
"SQL Injection vulnerability due to direct string concatenation"
],
"suggestions": [
"Use parameterized queries to prevent SQL injection",
"Handle database connections properly"
],
"fixed_code": "def get_user(username):\n query = \"SELECT * FROM users WHERE username = ?\"\n cursor.execute(query, (username,))"
}Score Guidelines
Training
LoRA Config
r = 16
lora_alpha = 16
lora_dropout = 0
target_modules = [
"q_proj", "k_proj", "v_proj", "o_proj",
"gate_proj", "up_proj", "down_proj"
]Limitations
- Context limited to 2048 tokens
- Optimized for single-function analysis
- May produce false positives for complex patterns
- Training data is synthetically generated
Links
Citation
@software{codereview_ai_2025,
title = {CodeReview AI: Automated Code Analysis with Fine-tuned LLMs},
author = {Bora Ozkan},
year = {2025},
url = {https://huggingface.co/boraoxkan/codereview-ai}
}License
MIT License - See LICENSE for details.
<div align="center"> <b>Built with Unsloth & Qwen2.5-Coder</b><br> <sub>Making code reviews smarter, one bug at a time.</sub> </div>
