"Invalid or missing filegpt parameter"]); exit; } $filegpt = $_POST["filegpt"]; $env["elements"] = count($filegpt); $env["processed_files"] = []; if ($env["elements"] > 0) { foreach ($filegpt as $file) { $env["processed_files"][] = [ "title" => $file["title"], "filepath" => $file["filepath"] ]; logMessage("Файл получен: " . $file["title"] . " | Путь: " . $file["filepath"]); } logMessage("Файлов передано в обработку: " . count($env["processed_files"])); $result = "yes"; // Файлы найдены, передаем их на анализ } else { logMessage("Ошибка: Нет файлов для обработки"); $result = "no"; // Нет файлов } logMessage("=== Завершение обработки файлов ==="); return $result; /* header("Content-Type: application/json"); // Установка директории логирования $logDir = __DIR__ . '/logs'; if (!is_dir($logDir)) { mkdir($logDir, 0777, true); } $logFile = $logDir . '/acsgpt.log'; // Функция логирования function logMessage($message) { global $logFile; $timestamp = date("Y-m-d H:i:s"); file_put_contents($logFile, "[$timestamp] $message\n", FILE_APPEND); } logMessage("=== Начало анализа загруженных документов ==="); // Проверяем, что запрос пришел методом POST if ($_SERVER['REQUEST_METHOD'] !== 'POST') { logMessage("Ошибка: Неверный метод запроса"); echo json_encode(["error" => "Invalid request method"]); exit; } // Получаем файлы из POST-переменной $filegpt $uploadedFiles = $_POST['filegpt'] ?? null; if (!$uploadedFiles || count($uploadedFiles) === 0) { logMessage("Ошибка: Файлы не предоставлены"); echo json_encode(["error" => "No files provided"]); exit; } logMessage("Файлов для анализа: " . count($uploadedFiles)); $result = []; $result['status'] = true; $result['files'] = []; $result['summary'] = "Анализ загруженных документов"; $result['dispute_analysis'] = []; $result['censorship_issues'] = []; $requiresManualReview = false; foreach ($uploadedFiles as $file) { $fileName = $file["title"]; $filePath = $file["filepath"]; $fileType = mime_content_type($filePath); logMessage("Анализ файла: $fileName ($fileType)"); // Анализ документа по содержанию и названию $contentAnalysis = AnalyzeTextFile("Определи, соответствует ли название файла его содержимому и какой тип документа передан (например, 'договор', 'претензия', 'ответ на претензию').", file_get_contents($filePath)); // Анализируем цензуру $fileAnalysis = wf_checkpdf($filePath); $pagesWithIssues = !empty($fileAnalysis['pages']) ? implode(',', $fileAnalysis['pages']) : "Нет проблем"; // Анализируем спор, если документ связан с жалобами $disputeData = AnalyzeTextFile("Определи истца, ответчика, суть спора и основные аргументы сторон на основе содержимого этого документа.", file_get_contents($filePath)); // Записываем результат анализа $result['files'][] = [ "title" => $fileName, "type" => $fileType, "document_type" => $contentAnalysis['type'] ?? "Не определено", "issues" => $pagesWithIssues, "dispute_analysis" => $disputeData ]; logMessage("Результат анализа: тип - " . ($contentAnalysis['type'] ?? "Не определено") . ", нарушения - $pagesWithIssues"); // Если есть проблемы, отмечаем, что требуется ручная проверка if (!empty($fileAnalysis['pages'])) { $requiresManualReview = true; $result['censorship_issues'][] = "$fileName: найдено нарушение на страницах $pagesWithIssues"; logMessage("Обнаружены нарушения в $fileName на страницах: $pagesWithIssues"); } } // Итоговый вердикт $result['moderation_status'] = $requiresManualReview ? "Не прошло модерацию (требуется участие человека)" : "Прошло модерацию"; $result['final_dispute_summary'] = "Обобщенная информация по спору"; logMessage("Финальный вердикт: " . $result['moderation_status']); logMessage("Файл: $fileName | Тип: $fileType | Тип документа: " . ($contentAnalysis['type'] ?? "Не определено") . " | Нарушения: $pagesWithIssues"); logMessage("Спор: Истец - " . ($disputeData['claimant'] ?? "Не найден") . ", Ответчик - " . ($disputeData['respondent'] ?? "Не найден")); logMessage("=== Завершение анализа документов ==="); // Возвращаем JSON-ответ echo json_encode($result); */ ?>