fix: Resolve getJSON method error in student national ID verification and enhance curriculum worker Gemini model handling

This commit is contained in:
Hamza-Ayed
2026-08-29 03:00:06 +03:00
parent 9a1cb3adfd
commit a8d0efbbea
4 changed files with 22 additions and 10 deletions
+6 -5
View File
@@ -182,12 +182,12 @@ $payload = [
updateState($stateFile, 'analyzing', 70, 'جاري تطبيقหน่วงزمني (4 ثوانٍ) لتفادي حدود الاستخدام (Rate Limit)...');
sleep(4);
// Allow custom model from .env (e.g. gemini-2.0-flash-lite-preview-02-05 or gemini-2.0-flash)
// Allow custom model from .env (e.g. gemini-1.5-flash or gemini-2.0-flash)
$geminiModel = Env::get('GEMINI_MODEL') ?: getenv('GEMINI_MODEL');
if (empty($geminiModel)) {
$geminiModel = "gemini-flash-lite-latest"; // fallback to latest flash lite
$geminiModel = "gemini-1.5-flash"; // standard robust model
}
updateState($stateFile, 'analyzing', 75, "جاري إرسال البيانات للنموذج [{$geminiModel}]...");
updateState($stateFile, 'analyzing', 75, "جاري إرسال البيانات للنموذج [{$geminiModel}] لاستخراج الدروس والمفاهيم والمعادلات...");
$url = "https://generativelanguage.googleapis.com/v1beta/models/{$geminiModel}:generateContent?key=" . $geminiKey;
$ch = curl_init($url);
@@ -196,14 +196,15 @@ curl_setopt_array($ch, [
CURLOPT_POSTFIELDS => json_encode($payload),
CURLOPT_HTTPHEADER => ['Content-Type: application/json'],
CURLOPT_RETURNTRANSFER => true,
CURLOPT_TIMEOUT => 300 // AI might take 2 minutes
CURLOPT_TIMEOUT => 300 // AI might take 2-3 minutes
]);
$res = curl_exec($ch);
$code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
if ($code !== 200 || empty($res)) {
updateState($stateFile, 'error', 0, 'فشل توليد المحتوى من الذكاء الاصطناعي. قد يكون الملف ضخماً جداً أو الـ API Key غير صالح.');
$detail = !empty($res) ? $res : 'استجابة فارغة من خادم Google Gemini';
updateState($stateFile, 'error', 0, "فشل تحليل المحتوى من الذكاء الاصطناعي (HTTP {$code}). التفاصيل: {$detail}");
return;
}