if ($_POST['action'] === 'process_ai_response') { try { $conversation_id = (int)($_POST['conversation_id'] ?? 0); $user_message = trim($_POST['user_message'] ?? ''); $ai_response = trim($_POST['ai_response'] ?? ''); // Données de tokens depuis n8n $tokens_input = (int)($_POST['tokens_input'] ?? 0); $tokens_output = (int)($_POST['tokens_output'] ?? 0); $tokens_total = (int)($_POST['tokens_total'] ?? 0); $model = $_POST['model'] ?? 'unknown'; $ai_mode = $_POST['ai_mode'] ?? 'standard'; $credits_used = (int)($_POST['credits_used'] ?? 0); $user_id = $_SESSION['user_id']; if (!$conversation_id || empty($user_message) || empty($ai_response)) { throw new Exception('Données manquantes'); } // 1. Sauvegarder le message utilisateur $user_message_id = saveMessageToConversation($conversation_id, 'user', $user_message); if (!$user_message_id) { throw new Exception('Erreur sauvegarde message utilisateur'); } // 2. Sauvegarder la réponse de l'IA AVEC les tokens $tokens_data = [ 'tokens_input' => $tokens_input, 'tokens_output' => $tokens_output, 'tokens_total' => $tokens_total, 'model' => $model, 'ai_mode' => $ai_mode, 'credits_used' => $credits_used ]; $ai_message_id = saveMessageWithTokens($conversation_id, 'assistant', $ai_response, $tokens_data); if (!$ai_message_id) { throw new Exception('Erreur sauvegarde réponse IA'); } // 3. Décompter les crédits de l'utilisateur $deduction_result = deductUserCredits($user_id, $credits_used); if (!$deduction_result) { // On continue même si le décompte échoue, mais on log l'erreur error_log("ERREUR CRITIQUE: Impossible de décompter les crédits pour l'utilisateur $user_id"); } // 4. Retourner les nouvelles infos de crédits $new_credits = getUserAICredits($user_id); echo json_encode([ 'success' => true, 'user_message_id' => $user_message_id, 'ai_message_id' => $ai_message_id, 'credits_used' => $credits_used, 'credits_remaining' => $new_credits['credits_remaining'], 'credits_total' => $new_credits['credits_total'] ]); } catch (Exception $e) { error_log("Erreur process_ai_response: " . $e->getMessage()); echo json_encode(['success' => false, 'error' => $e->getMessage()]); } exit; }