$answer) { $formatted_answers[] = "Q: " . $questions[$index] . "\nA: " . $answer; } $prompt = "You are a burnout analysis expert. A user has completed a burnout survey. The user answered on a scale of 1-5 where 1 is 'Never' and 5 is 'Always'. Analyze the following survey answers and provide a detailed analysis.\n\nReturn the response as a JSON object. The JSON object must have the following keys: \"scores\", \"analysis\", \"recommendations\", and \"nextSteps\".\n\n- The 'scores' key should contain an object with 'Exhaustion', 'Cynicism', and 'Inefficacy' as keys, each with a numeric score from 0 to 5.\n- The 'analysis' key should contain an object with 'overallSummary', 'exhaustionSummary', 'cynicismSummary', and 'inefficacySummary' as keys, each containing a string with the corresponding analysis.\n- The 'recommendations' key should contain an array of objects, where each object has a 'title' and a 'description'.\n- The 'nextSteps' key should contain an array of strings.\n\nAnswers:"; $prompt .= implode("\n\n", $formatted_answers); $ai_response = LocalAIApi::createResponse([ 'input' => [ ['role' => 'system', 'content' => 'You are a burnout analysis expert.'], ['role' => 'user', 'content' => $prompt], ], ]); if (!empty($ai_response['success'])) { $decoded_response = LocalAIApi::decodeJsonFromResponse($ai_response); $_SESSION['results'] = $decoded_response; if (isset($_SESSION['user_id'])) { try { $pdo = db(); $stmt = $pdo->prepare('INSERT INTO survey_results (user_id, results_json) VALUES (:user_id, :results_json)'); $stmt->execute([ ':user_id' => $_SESSION['user_id'], ':results_json' => json_encode($decoded_response) ]); } catch (PDOException $e) { // Optionally handle or log the database error } } } else { // Handle AI API error, maybe provide default results $_SESSION['results'] = [ 'scores' => ['Exhaustion' => 0, 'Cynicism' => 0, 'Inefficacy' => 0], 'recommendations' => ['Could not analyze results at this time. Please try again later.'] ]; } $response['redirect'] = 'results.php'; } echo json_encode($response);