feat: Добавлен инструмент генерации документов для AI Ассистента
- Создан API create_document_with_text.php для создания DOCX/XLSX/PPTX с текстом от AI - Поддержка Markdown форматирования (заголовки, жирный, курсив, списки, код) - Установлен PHPWord для красивого форматирования документов - Исправлены пути сохранения (crm2/CRM_Active_Files/... без /crm/ в начале) - Замена пробелов на подчеркивания в именах папок - Создана документация для AI и разработчиков - Добавлены API для работы с шаблонами Nextcloud
This commit is contained in:
@@ -64,6 +64,53 @@ try {
|
||||
|
||||
error_log("Callback: Updated task {$taskId}, affected rows: {$affected}");
|
||||
|
||||
// Публикуем событие в Redis для мгновенной доставки через SSE
|
||||
try {
|
||||
if (class_exists('Redis')) {
|
||||
$redis = new Redis();
|
||||
if ($redis->connect('crm.clientright.ru', 6379)) {
|
||||
$redis->auth('CRM_Redis_Pass_2025_Secure!');
|
||||
|
||||
$channel = "ai:response:{$taskId}";
|
||||
$event = json_encode([
|
||||
'task_id' => $taskId,
|
||||
'status' => $status,
|
||||
'response' => $response,
|
||||
'error' => $error,
|
||||
'timestamp' => date('Y-m-d H:i:s')
|
||||
], JSON_UNESCAPED_UNICODE);
|
||||
|
||||
$redis->publish($channel, $event);
|
||||
error_log("Callback: Published to Redis channel {$channel}");
|
||||
$redis->close();
|
||||
}
|
||||
} else {
|
||||
// Используем Predis если расширение Redis недоступно
|
||||
require_once '/var/www/fastuser/data/www/crm.clientright.ru/vendor/autoload.php';
|
||||
$redis = new Predis\Client([
|
||||
'scheme' => 'tcp',
|
||||
'host' => 'crm.clientright.ru',
|
||||
'port' => 6379,
|
||||
'password' => 'CRM_Redis_Pass_2025_Secure!',
|
||||
]);
|
||||
|
||||
$channel = "ai:response:{$taskId}";
|
||||
$event = json_encode([
|
||||
'task_id' => $taskId,
|
||||
'status' => $status,
|
||||
'response' => $response,
|
||||
'error' => $error,
|
||||
'timestamp' => date('Y-m-d H:i:s')
|
||||
], JSON_UNESCAPED_UNICODE);
|
||||
|
||||
$redis->publish($channel, $event);
|
||||
error_log("Callback: Published to Redis channel {$channel} via Predis");
|
||||
}
|
||||
} catch (Exception $redisError) {
|
||||
error_log("Callback: Redis publish error (non-critical): " . $redisError->getMessage());
|
||||
// Не прерываем выполнение, если Redis недоступен - БД уже обновлена
|
||||
}
|
||||
|
||||
echo json_encode([
|
||||
'success' => true,
|
||||
'message' => 'Response received',
|
||||
|
||||
Reference in New Issue
Block a user