Files
crm.clientright.ru/aiassist/crm_endpoint.php

114 lines
4.5 KiB
PHP
Raw Normal View History

<?php
/**
* CRM AI Drawer Endpoint
* Простой endpoint для интеграции AI Drawer с локальным AI ассистентом
*/
header('Content-Type: application/json');
header('Access-Control-Allow-Origin: *');
header('Access-Control-Allow-Methods: POST, OPTIONS');
header('Access-Control-Allow-Headers: Content-Type');
// Обработка preflight запросов
if ($_SERVER['REQUEST_METHOD'] === 'OPTIONS') {
http_response_code(200);
exit();
}
// Проверяем метод запроса
if ($_SERVER['REQUEST_METHOD'] !== 'POST') {
http_response_code(405);
echo json_encode(['error' => 'Method not allowed']);
exit();
}
// Получаем данные из запроса
$input = file_get_contents('php://input');
$data = json_decode($input, true);
if (!$data || !isset($data['message'])) {
http_response_code(400);
echo json_encode(['error' => 'Invalid request data']);
exit();
}
$message = $data['message'];
$context = $data['context'] ?? [];
$sessionId = $data['sessionId'] ?? 'crm-session-' . time();
// Логируем запрос
error_log("CRM AI Drawer: Получен запрос - " . $message . " | Контекст: " . json_encode($context));
try {
// Простые ответы на основе контекста и сообщения
$response = generateResponse($message, $context, $sessionId);
echo json_encode([
'response' => $response,
'sessionId' => $sessionId,
'context' => $context,
'timestamp' => date('Y-m-d H:i:s')
]);
} catch (Exception $e) {
error_log("CRM AI Drawer Error: " . $e->getMessage());
http_response_code(500);
echo json_encode([
'error' => 'Internal server error',
'message' => 'Произошла ошибка при обработке запроса'
]);
}
function generateResponse($message, $context, $sessionId) {
$message = strtolower(trim($message));
// Приветствие
if (preg_match('/привет|hello|hi|здравствуй/', $message)) {
return "Привет! Я AI ассистент вашей CRM системы. Чем могу помочь?";
}
// Помощь
if (preg_match('/помощь|help|что ты умеешь/', $message)) {
return "Я могу помочь вам с:\n• Поиском информации в CRM\n• Анализом данных\n• Созданием отчетов\n• Работой с клиентами\n• Обработкой документов\n\nПросто опишите, что вам нужно!";
}
// Работа с клиентами
if (preg_match('/клиент|client|customer/', $message)) {
$module = $context['module'] ?? 'неизвестный';
return "Работаем с клиентами в модуле: {$module}. Что именно вас интересует?";
}
// Работа с документами
if (preg_match('/документ|document|файл/', $message)) {
return "Для работы с документами в CRM используйте модуль 'Документы'. Хотите создать новый документ или найти существующий?";
}
// Отчеты
if (preg_match('/отчет|report|статистика/', $message)) {
return "Для создания отчетов перейдите в модуль 'Отчеты'. Какой тип отчета вас интересует?";
}
// Поиск
if (preg_match('/найти|search|поиск/', $message)) {
return "Для поиска используйте поисковую строку в верхней части CRM или модуль 'Поиск'. Что именно вы ищете?";
}
// Контекстная информация
if (!empty($context['module'])) {
$module = $context['module'];
$recordId = $context['projectId'] ?? 'не указан';
return "Вы находитесь в модуле '{$module}' (запись: {$recordId}). Как я могу помочь с этой записью?";
}
// Общий ответ
return "Я получил ваше сообщение: '{$message}'. Сейчас работаю в режиме локального AI ассистента. Для более продвинутых возможностей подключите Typebot сервер.";
}
?>