Implement Server-Side AI Question Bank Generator, Adaptive Weakness Sampling 60/40, and Curriculum Studio One-Click Generation

This commit is contained in:
Hamza-Ayed
2026-09-03 15:38:35 +03:00
parent c9c03892d1
commit 8d7ffcf2eb
7 changed files with 603 additions and 266 deletions
@@ -298,4 +298,32 @@ class CurriculumController
]);
}
}
/**
* Generate & Refresh AI Question Bank for any Unit or Lesson (Triggered from Curriculum Studio)
* POST /api/curriculum/generate-questions
*/
public function generateQuestionBank(Request $request, Response $response): void
{
$body = $request->getBody();
$unitPath = $body['unit_path'] ?? 'grade_10/math_10/semester_1/unit_01';
$courseId = (int)($body['course_id'] ?? 1);
$count = (int)($body['count'] ?? 50);
try {
require_once __DIR__ . '/../Services/AiQuestionBankGeneratorService.php';
$result = \App\Services\AiQuestionBankGeneratorService::generateUnitQuestionBank($unitPath, $courseId, $count);
$response->json([
'status' => 'success',
'message' => "تم توليد وتحديث بنك الأسئلة بالذكاء الاصطناعي بنجاح ({$result['total_in_bank']} سؤالاً معيارياً في قاعدة البيانات)!",
'data' => $result
]);
} catch (\Throwable $e) {
$response->status(500)->json([
'status' => 'error',
'message' => 'تعذر توليد بنك الأسئلة: ' . $e->getMessage()
]);
}
}
}