Files
crm.clientright.ru/acsgpt.php

149 lines
6.0 KiB
PHP
Raw Permalink Normal View History

<?php
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("=== Начало обработки загруженных файлов ===");
$disableFunctionlist = 1;
if (!isset($_POST["filegpt"]) || !is_array($_POST["filegpt"])) {
logMessage("Ошибка: filegpt отсутствует или не является массивом");
echo json_encode(["error" => "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);
*/
?>