update: add function for generate question from file

This commit is contained in:
abiyasa05 2025-06-10 21:18:32 +07:00
parent cb99d0f957
commit dc5a9ad295

View File

@ -207,7 +207,7 @@ public function generate_from_ai_last(Request $request)
}
}
public function generate_from_ai(Request $request)
public function generate_from_ai2(Request $request)
{
$request->validate([
'material_id' => 'required|exists:literacy_materials,id',
@ -332,6 +332,62 @@ public function generate_from_ai(Request $request)
}
}
public function generate_from_ai(Request $request)
{
$request->validate([
'material_id' => 'required|exists:literacy_materials,id',
'question_type' => 'required|in:multiple_choice,essay',
'question_count' => 'required|integer|min:1|max:20',
]);
try {
ini_set('max_execution_time', 300);
$material = LiteracyMaterial::findOrFail($request->material_id);
$relativePath = $material->file_path;
// Kirim permintaan ke FastAPI
$response = Http::timeout(300)->asJson()->post('http://127.0.0.1:8010/generate-from-file/', [
'file_name' => $relativePath,
'question_type' => $request->question_type,
'question_count' => (int) $request->question_count,
]);
if ($response->successful()) {
$generatedText = LiteracyGeneratedText::create([
'user_id' => Auth::id(),
'material_id' => $request->material_id,
'question_type' => $request->question_type,
'generate_text' => $response->json()['generated_questions'],
'question_count' => $request->question_count,
]);
return response()->json([
'status' => 'success',
'generated_questions' => $generatedText->generate_text
]);
}
Log::error('FastAPI Error Response:', [
'status' => $response->status(),
'body' => $response->body()
]);
return response()->json([
'status' => 'error',
'message' => 'Gagal menghasilkan soal dari model',
'response' => $response->json()
], $response->status());
} catch (\Exception $e) {
Log::error('Generate Error:', ['error' => $e->getMessage()]);
return response()->json([
'status' => 'error',
'message' => 'Terjadi kesalahan internal: ' . $e->getMessage()
], 500);
}
}
// public function generate_from_ai(Request $request)
// {
// $request->validate([