diff --git a/api/lab/save_config.php b/api/lab/save_config.php index 5e9ea52..42fb5c7 100644 --- a/api/lab/save_config.php +++ b/api/lab/save_config.php @@ -17,6 +17,7 @@ $permitidas = [ 'empresa_telefono', 'empresa_email', 'empresa_ciudad', 'doc_color', 'doc_logo_base64', 'doc_pie_pagina', 'gemini_api_key', + 'ia_activa', ]; $guardadas = 0; diff --git a/api/lab/test_gemini.php b/api/lab/test_gemini.php new file mode 100644 index 0000000..e5cce29 --- /dev/null +++ b/api/lab/test_gemini.php @@ -0,0 +1,40 @@ + [['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-2.0-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-2.0-flash', 'respuesta' => $gemini['candidates'][0]['content']['parts'][0]['text'] ?? '']); diff --git a/lab_configuracion.php b/lab_configuracion.php index 5be4a92..c84bb6c 100644 --- a/lab_configuracion.php +++ b/lab_configuracion.php @@ -167,7 +167,14 @@ require_once __DIR__ . '/shared/components/sidebar.php';
El asistente IA del turnero usa Google Gemini Flash para responder preguntas sobre el estado del día. Genera tu clave en @@ -184,8 +191,11 @@ require_once __DIR__ . '/shared/components/sidebar.php'; onclick="this.previousElementSibling.type = this.previousElementSibling.type === 'password' ? 'text' : 'password'"> +