Files
crm.clientright.ru/acsgpt.php

149 lines
6.0 KiB
PHP
Executable File
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?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);
*/
?>