Files
crm.clientright.ru/acsgpt.php
Fedor ac7467f0b4 Major CRM updates: AI Assistant, Court Status API, S3 integration improvements, and extensive file storage system
- 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.
2025-10-16 11:17:21 +03:00

149 lines
6.0 KiB
PHP
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);
*/
?>