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

114 lines
4.5 KiB
PHP
Raw Permalink 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
/**
* 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 сервер.";
}
?>