smartlearn / src /core /synth_quiz.py
Teja Chowdary
Deploy full SmartLearn app with all AI features
9f07177
Raw
History Blame Contribute Delete
727 Bytes
from __future__ import annotations
from typing import List, Dict, Tuple
def grade_mcq_batch(items: List[Dict]) -> Tuple[float, List[Dict]]:
correct = 0
results = []
for item in items:
user = item.get("user_answer")
ans = item.get("answer")
ok = (user == ans)
correct += 1 if ok else 0
results.append({"q": item.get("q"), "correct": ok, "expected": ans, "user": user, "explanation": item.get("explanation")})
score = correct / len(items) if items else 0.0
return score, results
def adapt_difficulty(current: int, score: float) -> int:
if score >= 0.85 and current < 3: return current + 1
if score < 0.5 and current > 1: return current - 1
return current