Proyectos de Subversion LeadersLinked - Services

Rev

Rev 518 | Rev 520 | Ir a la última revisión | Mostrar el archivo completo | | | Autoría | Ultima modificación | Ver Log |

Rev 518 Rev 519
Línea 270... Línea 270...
270
        ];
270
        ];
Línea 271... Línea 271...
271
 
271
 
272
        // 🔹 Consultar OpenAI
272
        // 🔹 Consultar OpenAI
Línea 273... Línea -...
273
        $response = $this->analyzeCvWithAi($messages);
-
 
274
 
-
 
275
        // 🔹 Validar y retornar
-
 
276
        if (!isset($response['success']) || !$response['success']) {
-
 
277
            return [
-
 
278
                'success' => false,
-
 
279
                'message' => 'Error al consultar la API de OpenAI',
-
 
280
                'data' => $response['message'] ?? null
-
 
281
            ];
-
 
282
        }
-
 
283
 
-
 
284
        // 🔹 Intentar extraer JSON del mensaje generado
-
 
285
        $reply = $this->cleanContent($response['data']['choices'][0]['message']['content'] ?? null);
-
 
286
 
-
 
287
        if (!$reply) {
-
 
288
            return [
-
 
289
                'success' => false,
-
 
290
                'message' => 'No se obtuvo una respuesta válida de la IA.',
-
 
291
                'data' => null
-
 
292
            ];
-
 
293
        }
-
 
294
 
-
 
295
        // 🔹 Intentar decodificar respuesta JSON (por si OpenAI responde directamente con JSON)
-
 
296
        $decoded = json_decode($reply, true);
-
 
297
 
-
 
298
        if (json_last_error() === JSON_ERROR_NONE && is_array($decoded)) {
-
 
299
            return [
-
 
300
                'success' => true,
-
 
301
                'message' => 'Análisis completado',
-
 
302
                'data' => $decoded
-
 
303
            ];
-
 
304
        }
-
 
305
 
273
        $response = $this->analyzeCvWithAi($messages);
306
        // 🔹 Si no fue posible decodificar, devolver contenido bruto para revisión
-
 
307
        return [
-
 
308
            'success' => false,
-
 
309
            'message' => 'No se pudo decodificar el JSON de la respuesta',
-
 
310
            'data' => $reply
274
 
Línea 311... Línea 275...
311
        ];
275
        return $response;
312
    }
276
    }
313
 
277