false, 'error' => 'يرجى تسجيل الدخول أولاً']); exit; } $input = json_decode(file_get_contents('php://input'), true); $title = trim($input['title'] ?? ''); if (empty($title)) { echo json_encode(['success' => false, 'error' => 'يرجى إدخال عنوان الخطة أولاً']); exit; } try { $systemPrompt = "أنت مساعد ذكاء اصطناعي متخصص في كتابة أوصاف مهنية وجذابة وملهمة لخطط وأهداف الجمعيات الخيرية ومؤشرات الأداء (KPIs). " . "قم بكتابة وصف موجز (حوالي 2-3 أسطر) للخطة أو الهدف التالي بناءً على عنوانه. " . "اجعل الوصف احترافياً، باللغة العربية الفصحى، ولا تضف أي مقدمات أو خواتيم (مثل 'إليك الوصف' أو 'هذا هو'). ابدأ بالوصف مباشرة. " . "تأكد من صياغة الوصف بأسلوب مختلف ومبتكر في كل مرة. (مفتاح عشوائي لضمان التغيير: " . uniqid() . ")"; $response = LocalAIApi::createResponse([ 'model' => 'gpt-4o-mini', 'input' => [ ['role' => 'system', 'content' => $systemPrompt], ['role' => 'user', 'content' => "عنوان الخطة/الهدف: " . $title], ] ]); if (!empty($response['success'])) { $text = LocalAIApi::extractText($response); if ($text === '') { $decoded = LocalAIApi::decodeJsonFromResponse($response); $text = $decoded ? json_encode($decoded, JSON_UNESCAPED_UNICODE) : (string)($response['data'] ?? ''); } echo json_encode(['success' => true, 'description' => trim($text)]); } else { // Fallback dummy text arrays to ensure variety while AI proxy is down error_log("AI Error Generate Plan: " . print_r($response, true)); $fallbackTemplates = [ "خطة «{$title}» تهدف إلى تحقيق أثر مستدام وتلبية تطلعات الفئة المستهدفة من خلال تنفيذ مبادرات استراتيجية مدروسة وفق أعلى معايير الجودة.", "تأتي «{$title}» ضمن استراتيجيتنا الشاملة لتعزيز كفاءة الأداء، وضمان تقديم خدمات نوعية تتوافق مع الرؤية المستقبلية للمؤسسة وأهدافها.", "من خلال مؤشر الأداء «{$title}»، نركز على قياس وتطوير العمليات التشغيلية لضمان الاستدامة وتحقيق أعلى درجات التميز المؤسسي الممكنة.", "نسعى لتطبيق أهداف «{$title}» بخطوات عملية ومؤشرات واضحة تضمن الاستغلال الأمثل للموارد، وتعظيم الأثر الاجتماعي والإنساني لبرامجنا.", "تمثل «{$title}» خارطة طريق طموحة لرفع كفاءة العمل الخيري، وتفعيل الشراكات الفاعلة بما ينعكس إيجاباً على مجمل مخرجات الجمعية واستدامتها." ]; // Pick a random template $dummyText = $fallbackTemplates[array_rand($fallbackTemplates)]; echo json_encode(['success' => true, 'description' => $dummyText, 'is_mock' => true]); } } catch (Exception $e) { error_log("Generate Plan Error: " . $e->getMessage()); echo json_encode(['success' => false, 'error' => "حدث خطأ داخلي. يرجى المحاولة لاحقاً."]); }