- 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.
111 lines
6.9 KiB
PHP
111 lines
6.9 KiB
PHP
<?php
|
||
|
||
// Настройки OpenAI API
|
||
const OPENAI_API_KEY = 'sk-GS24OxHQYfq8ErW5CRLoN5F1CfJPxNsY'; // Замените на ваш API-ключ
|
||
const OPENAI_ASSISTANT_API = 'https://api.proxyapi.ru/openai/v1/assistants';
|
||
|
||
// Промпт для ассистента
|
||
$prompt = "
|
||
🔹 Отвечай по шаблону. **Задача**:
|
||
Проанализируй загруженные документы, выполнив следующие действия:
|
||
|
||
1️⃣ **Список файлов и проверка соответствия названий**
|
||
- Перечисли все загруженные файлы.
|
||
- Внимательно анализируй изображения.
|
||
- Если изображение содержит текст, сначала **извлеки текст** и **проанализируй его содержание**.
|
||
- Укажи, если текст плохо читается или частично распознан.
|
||
- Если изображение не содержит текста, опиши, что на нем изображено.
|
||
**Особое внимание NSFW контенту в тексте и изображениях**
|
||
Отдельно укажи в отчете, что файл может содержать ТРЭШ-контент и требуется ручная проверка.
|
||
|
||
2️⃣ **Краткий анализ спора**
|
||
- Определи **истца** (потребителя) и **ответчика** (компанию, на которую подана жалоба).
|
||
- Опиши **суть спора** (что произошло и какая проблема заявлена).
|
||
- Укажи **основные аргументы сторон** (что заявляет потребитель и какие возражения возможны у компании).
|
||
|
||
3️⃣ **Проверка на цензуру**
|
||
- Проверь документы на наличие **ненормативной лексики** и **нецензурных изображений**.
|
||
- Анализируй изображения на наличие нецензурного контента, запрещенной символики, сцен насилия и других нарушений. Если найдены такие элементы, укажи это в отчете.
|
||
- Если обнаружены изображения, укажи что именно и требуется ли их ручная проверка.
|
||
|
||
4️⃣ **Выдача итогового вердикта**
|
||
- Если всё соответствует, укажи: \"Вердикт: Прошло модерацию.\"
|
||
- Если имеются несоответствия или потенциальные проблемы, укажи, что требуется ручная проверка.
|
||
|
||
5️⃣ **Характер спора**
|
||
- Дай краткую характеристику дела (например, \”Характер спора: некачественный товар\", \" Характер спора: товар не привезли\", \" Характер спора: возврат денег\", \" Характер спора: некачественная услуга\" и т. д.).
|
||
|
||
6️⃣ **Укажи вероятность разрешения спора в пользу потребителя в %**
|
||
Отвечай в формате «Вероятность положительного решения спора: _____»
|
||
|
||
7️⃣ **Чего не хватает**
|
||
Укажи, каких документов не хватает для составления более полного отчета и определения вариантов решения спора в пользу потребителя. Что необходимо получить дополнительно от заявителя, либо запросить у контрагента или третьих лиц. Отвечай в формате «Запросить: ____»
|
||
|
||
📌 **Важно**:
|
||
Отчет должен быть структурированным, четким и лаконичным. Укажи, какими нормами права РФ будет регулироваться рассмотрение данного спора. Если требуется ручная проверка, укажи приоритетные файлы для проверки.
|
||
";
|
||
|
||
// Функция для создания ассистента
|
||
function createAssistant($prompt) {
|
||
$data = [
|
||
"name" => "Clientright",
|
||
"instructions" => $prompt, // Используем ваш промпт как инструкции
|
||
"model" => "gpt-4-turbo",
|
||
"tools" => [["type" => "file_search"]]
|
||
];
|
||
|
||
$body = json_encode($data, JSON_UNESCAPED_UNICODE);
|
||
|
||
$curl = curl_init();
|
||
curl_setopt_array($curl, [
|
||
CURLOPT_URL => OPENAI_ASSISTANT_API,
|
||
CURLOPT_RETURNTRANSFER => true,
|
||
CURLOPT_POST => true,
|
||
CURLOPT_POSTFIELDS => $body,
|
||
CURLOPT_HTTPHEADER => [
|
||
'Content-Type: application/json',
|
||
'Authorization: Bearer ' . OPENAI_API_KEY,
|
||
'OpenAI-Beta: assistants=v2'
|
||
]
|
||
]);
|
||
|
||
$response = curl_exec($curl);
|
||
$httpCode = curl_getinfo($curl, CURLINFO_HTTP_CODE);
|
||
$curlError = curl_error($curl);
|
||
curl_close($curl);
|
||
|
||
if ($curlError) {
|
||
return "Ошибка cURL при создании ассистента: " . $curlError;
|
||
}
|
||
|
||
if ($httpCode !== 200) {
|
||
return "Ошибка при создании ассистента: HTTP $httpCode - " . $response;
|
||
}
|
||
|
||
$decodedResponse = json_decode($response, true);
|
||
|
||
if (!isset($decodedResponse['id'])) {
|
||
return "Ошибка: ассистент не был создан.";
|
||
}
|
||
|
||
return $decodedResponse;
|
||
}
|
||
|
||
// Основной скрипт
|
||
echo "<h1>Создание нового ассистента</h1>";
|
||
|
||
$assistant = createAssistant($prompt);
|
||
|
||
if (is_array($assistant)) {
|
||
echo "<p><strong>Ассистент успешно создан!</strong></p>";
|
||
echo "<table border='1'>";
|
||
echo "<tr><th>Параметр</th><th>Значение</th></tr>";
|
||
echo "<tr><td>ID</td><td>" . htmlspecialchars($assistant['id']) . "</td></tr>";
|
||
echo "<tr><td>Имя</td><td>" . htmlspecialchars($assistant['name']) . "</td></tr>";
|
||
echo "<tr><td>Модель</td><td>" . htmlspecialchars($assistant['model']) . "</td></tr>";
|
||
echo "<tr><td>Инструкции</td><td><pre>" . htmlspecialchars($assistant['instructions']) . "</pre></td></tr>";
|
||
echo "<tr><td>Создан</td><td>" . date('Y-m-d H:i:s', $assistant['created_at']) . "</td></tr>";
|
||
echo "</table>";
|
||
} else {
|
||
echo "<p>Ошибка: " . htmlspecialchars($assistant) . "</p>";
|
||
} |