Shivaaaahdjdnd/code_analysis
0
๐ Qwen2.5-1.5B Coding Analysis System
AI-powered coding solution analyzer using Qwen2.5-1.5B-Instruct with HackerRank-level evaluation metrics.
๐ Features
๐ฏ AI-Powered Analysis
- Correctness (40 points): Syntax validation + real test execution + AI logic review
- Code Quality (25 points): Readability + structure + naming + comments + best practices
- Efficiency (20 points): Time/space complexity + optimization suggestions
- AI Detection (-10 penalty): Detects AI-generated code patterns
- Similarity Check (-5 penalty): Plagiarism detection vs reference solution
๐ค Qwen2.5-1.5B Integration
- 1.5B parameters optimized for code analysis on CPU
- Multi-language support: Python, Java, C++, JavaScript
- Real test execution for Python submissions
- Context-aware recommendations
๐ API Usage
Endpoint
POST /api/batch-analysisRequest Body
{
"submissions": [
{
"question": "Find two numbers that add up to target",
"user_code": "def two_sum(nums, target):\n for i in range(len(nums)):\n for j in range(i+1, len(nums)):\n if nums[i] + nums[j] == target:\n return [i, j]\n return []",
"correct_solution": "def two_sum(nums, target):\n seen = {}\n for i, num in enumerate(nums):\n if target - num in seen:\n return [seen[target - num], i]\n seen[num] = i\n return []",
"language": "python",
"difficulty": "easy",
"test_cases": [
{"input": [[2, 7, 11, 15], 9], "expected_output": "[0, 1]"}
]
}
]
}Optional Fields (per submission)
Response Body
{
"status": "completed",
"total_submissions": 1,
"average_score": 66.0,
"results": [
{
"submission_id": 1,
"question_title": "Find two numbers that add up to target",
"overall_score": 66,
"max_score": 100,
"status": "completed",
"analysis": {
"correctness": {"score": 40, "syntax_valid": true, "logic_correct": true, "test_cases_passed": 1, "total_test_cases": 1},
"code_quality": {"score": 16, "readability": 4, "structure": 4, "naming": 3, "comments": 0, "best_practices": 5},
"efficiency": {"score": 10, "time_complexity": "O(nยฒ)", "space_complexity": "O(1)"},
"ai_detection": {"penalty": 0, "ai_probability": 5},
"similarity": {"penalty": 0, "similarity_ratio": 0.45}
},
"feedback": "Solution is correct but uses O(nยฒ) time complexity. Consider using a hash map for O(n) solution.",
"recommendations": ["Use a dictionary to store seen values for O(n) time complexity"]
}
]
}Health Check
GET /healthReturns model load status and AI enabled flag.
๐ ๏ธ Quick Setup
Local Development
pip install -r requirements.txt
python app.pyDocker
docker build -t qwen-analyzer .
docker run -p 7860:7860 qwen-analyzerTest the API
python test_live_api.py
python test_batch.py๐ Scoring System
Time Complexity Scoring
๐ง Configuration
Environment variables:
MODEL_NAME=Qwen/Qwen2.5-1.5B-Instruct
PORT=7860
TEMPERATURE=0.1
MAX_NEW_TOKENS=600๐จ System Requirements
- Python: 3.10+
- RAM: 4GB minimum (8GB recommended)
- Storage: 4GB for model cache
- GPU: Optional (CUDA-compatible for faster inference)
๐ License
MIT License
Powered by Qwen2.5-1.5B-Instruct ๐ค
