[['role' => 'user', 'parts' => [['text' => 'Responde solo con la palabra: OK']]]], 'generationConfig' => ['maxOutputTokens' => 10, 'temperature' => 0], ], JSON_UNESCAPED_UNICODE); $ch = curl_init("https://generativelanguage.googleapis.com/v1beta/models/gemini-3.5-flash:generateContent?key={$key}"); curl_setopt_array($ch, [ CURLOPT_RETURNTRANSFER => true, CURLOPT_POST => true, CURLOPT_POSTFIELDS => $payload, CURLOPT_HTTPHEADER => ['Content-Type: application/json'], CURLOPT_TIMEOUT => 10, CURLOPT_SSL_VERIFYPEER => true, ]); $raw = curl_exec($ch); $code = curl_getinfo($ch, CURLINFO_HTTP_CODE); curl_close($ch); if (!$raw) jsonError('Sin respuesta del servidor de Google.', 502); $gemini = json_decode($raw, true); if ($code !== 200) { jsonError($gemini['error']['message'] ?? "Error HTTP {$code}", 502); } jsonOk(['modelo' => 'gemini-3.5-flash', 'respuesta' => $gemini['candidates'][0]['content']['parts'][0]['text'] ?? '']);