From b995ac10765bbe62e14e4c124d901fb46bb0ace7 Mon Sep 17 00:00:00 2001 From: Hamza-Ayed Date: Sun, 24 May 2026 01:32:00 +0300 Subject: [PATCH] Deploy: 2026-05-24 01:32:00 --- backend/app/Services/GeminiService.php | 14 +++++++++++--- backend/test_gemini.php | 25 +++++++++++++++++++++++++ 2 files changed, 36 insertions(+), 3 deletions(-) create mode 100644 backend/test_gemini.php diff --git a/backend/app/Services/GeminiService.php b/backend/app/Services/GeminiService.php index 46ecc5f..8f8cf71 100644 --- a/backend/app/Services/GeminiService.php +++ b/backend/app/Services/GeminiService.php @@ -4,7 +4,7 @@ namespace App\Services; class GeminiService { - public const DEFAULT_MODEL = 'gemini-3.1-flash-lite'; + public const DEFAULT_MODEL = 'gemini-flash-lite-latest'; /** * Get a random Gemini API key from a comma-separated list of keys @@ -89,11 +89,19 @@ class GeminiService if ($httpCode !== 200) { error_log("[Gemini API Error] HTTP " . $httpCode . " | Response: " . $response); - return null; + return "عذراً، الخادم الذكي يواجه ضغطاً أو مشكلة تقنية حالياً (خطأ API " . $httpCode . "). يرجى المحاولة بعد قليل."; } $data = json_decode($response, true); - return $data['candidates'][0]['content']['parts'][0]['text'] ?? null; + $text = $data['candidates'][0]['content']['parts'][0]['text'] ?? null; + + if ($text === null) { + $reason = $data['candidates'][0]['finishReason'] ?? 'مجهول'; + error_log("[Gemini Content Error] Reason: " . $reason . " | Response: " . $response); + return "عذراً، لم أتمكن من صياغة الرد لأسباب أمنية أو تقنية (السبب: " . $reason . ")."; + } + + return $text; } /** diff --git a/backend/test_gemini.php b/backend/test_gemini.php new file mode 100644 index 0000000..3170189 --- /dev/null +++ b/backend/test_gemini.php @@ -0,0 +1,25 @@ +