CoolFace
Apppublic

Shivaaaahdjdnd/code_analysis

sourceHugging Faceupdated 3mo agoView on Hugging Face
0likes
App README

๐Ÿš€ 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-analysis

Request Body

json
{
  "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)

FieldDefaultOptions
language"python"python, java, cpp, javascript
difficulty"medium"easy, medium, hard
test_casesnullArray of {input, expected_output}

Response Body

json
{
  "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 /health

Returns model load status and AI enabled flag.

๐Ÿ› ๏ธ Quick Setup

Local Development

bash
pip install -r requirements.txt
python app.py

Docker

bash
docker build -t qwen-analyzer .
docker run -p 7860:7860 qwen-analyzer

Test the API

bash
python test_live_api.py
python test_batch.py

๐Ÿ“Š Scoring System

ComponentPointsDescription
Correctness40Syntax + Real Test Execution + AI Logic Review
Quality25Readability + Structure + Naming + Comments
Efficiency20Time/Space Complexity
AI Penalty-10AI-generated code detection
Similarity-5Plagiarism detection

Time Complexity Scoring

ComplexityPoints
O(1)20
O(log n)18
O(n)15
O(n log n)12
O(nยฒ)8
O(nยณ)4

๐Ÿ”ง Configuration

Environment variables:

bash
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 ๐Ÿค–