- Added comprehensive AI Assistant system (aiassist/ directory): * Vector search and embedding capabilities * Typebot proxy integration * Elastic search functionality * Message classification and chat history * MCP proxy for external integrations - Implemented Court Status API (GetCourtStatus.php): * Real-time court document status checking * Integration with external court systems * Comprehensive error handling and logging - Enhanced S3 integration: * Improved file backup system with metadata * Batch processing capabilities * Enhanced error logging and recovery * Copy operations with URL fixing - Added Telegram contact creation API - Improved error logging across all modules - Enhanced callback system for AI responses - Extensive backup file storage with timestamps - Updated documentation and README files - File storage improvements: * Thousands of backup files with proper metadata * Fix operations for broken file references * Project-specific backup and recovery systems * Comprehensive file integrity checking Total: 26,461+ files added/modified including AWS SDK, vendor dependencies, and extensive backup system.
149 lines
6.0 KiB
PHP
149 lines
6.0 KiB
PHP
<?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);
|
||
*/
|
||
?>
|