const router = require('express').Router(); const MODERATION_CONFIG = require('./chat-ai-agent/moderation-config'); const { moderationText } = require('./chat-ai-agent/chat-moderation'); // Получить текущие настройки модерации router.get('/moderation/config', (req, res) => { console.log(`⚙️ [Config] Запрос на получение конфигурации модерации`); console.log(`⚙️ [Config] Текущие настройки:`, MODERATION_CONFIG); res.json(MODERATION_CONFIG); }); // Обновить настройки модерации router.post('/moderation/config', (req, res) => { console.log(`⚙️ [Config] === ОБНОВЛЕНИЕ КОНФИГУРАЦИИ МОДЕРАЦИИ ===`); console.log(`⚙️ [Config] Время запроса: ${new Date().toISOString()}`); console.log(`⚙️ [Config] Полученные данные:`, req.body); const oldConfig = { ...MODERATION_CONFIG }; const { MODERATION_DELAY, MODERATION_ENABLED, BLOCKED_MESSAGE_TEXT, ENABLE_MODERATION_LOGS } = req.body; const changes = []; if (MODERATION_DELAY !== undefined) { const newValue = parseInt(MODERATION_DELAY); console.log(`⚙️ [Config] Обновляем MODERATION_DELAY: ${MODERATION_CONFIG.MODERATION_DELAY} -> ${newValue}`); MODERATION_CONFIG.MODERATION_DELAY = newValue; changes.push(`MODERATION_DELAY: ${oldConfig.MODERATION_DELAY} -> ${newValue}`); } if (MODERATION_ENABLED !== undefined) { const newValue = Boolean(MODERATION_ENABLED); console.log(`⚙️ [Config] Обновляем MODERATION_ENABLED: ${MODERATION_CONFIG.MODERATION_ENABLED} -> ${newValue}`); MODERATION_CONFIG.MODERATION_ENABLED = newValue; changes.push(`MODERATION_ENABLED: ${oldConfig.MODERATION_ENABLED} -> ${newValue}`); } if (BLOCKED_MESSAGE_TEXT !== undefined) { const newValue = String(BLOCKED_MESSAGE_TEXT); console.log(`⚙️ [Config] Обновляем BLOCKED_MESSAGE_TEXT: "${MODERATION_CONFIG.BLOCKED_MESSAGE_TEXT}" -> "${newValue}"`); MODERATION_CONFIG.BLOCKED_MESSAGE_TEXT = newValue; changes.push(`BLOCKED_MESSAGE_TEXT: "${oldConfig.BLOCKED_MESSAGE_TEXT}" -> "${newValue}"`); } if (ENABLE_MODERATION_LOGS !== undefined) { const newValue = Boolean(ENABLE_MODERATION_LOGS); console.log(`⚙️ [Config] Обновляем ENABLE_MODERATION_LOGS: ${MODERATION_CONFIG.ENABLE_MODERATION_LOGS} -> ${newValue}`); MODERATION_CONFIG.ENABLE_MODERATION_LOGS = newValue; changes.push(`ENABLE_MODERATION_LOGS: ${oldConfig.ENABLE_MODERATION_LOGS} -> ${newValue}`); } console.log(`⚙️ [Config] === ИТОГИ ОБНОВЛЕНИЯ ===`); console.log(`⚙️ [Config] Количество изменений: ${changes.length}`); if (changes.length > 0) { changes.forEach((change, index) => { console.log(`⚙️ [Config] ${index + 1}. ${change}`); }); } else { console.log(`⚙️ [Config] Изменений не было внесено`); } console.log(`⚙️ [Config] Новая конфигурация:`, MODERATION_CONFIG); console.log(`⚙️ [Config] === ОБНОВЛЕНИЕ ЗАВЕРШЕНО ===`); res.json({ success: true, message: 'Настройки модерации обновлены', changes: changes, config: MODERATION_CONFIG }); }); // Тестовый эндпоинт для проверки модерации router.post('/moderation/test', async (req, res) => { const testStartTime = Date.now(); try { const { text } = req.body; console.log(`🧪 [Moderation Test] === НАЧАЛО ТЕСТИРОВАНИЯ МОДЕРАЦИИ ===`); console.log(`🧪 [Moderation Test] Время запуска: ${new Date().toISOString()}`); console.log(`🧪 [Moderation Test] Текст для тестирования: "${text ? (text.length > 100 ? text.substring(0, 100) + '...' : text) : 'не указан'}"`); console.log(`🧪 [Moderation Test] Длина текста: ${text ? text.length : 0} символов`); if (!text) { console.log(`❌ [Moderation Test] Отклонен: текст не предоставлен`); return res.status(400).json({ error: 'text is required' }); } console.log(`🧪 [Moderation Test] Отправляем текст на модерацию...`); const [comment, isApproved, finalMessage] = await moderationText('', text); const testTime = Date.now() - testStartTime; console.log(`🧪 [Moderation Test] === РЕЗУЛЬТАТЫ ТЕСТИРОВАНИЯ ===`); console.log(`🧪 [Moderation Test] Время тестирования: ${testTime}мс`); console.log(`🧪 [Moderation Test] Результат: ${isApproved ? '✅ ОДОБРЕНО' : '❌ ОТКЛОНЕНО'}`); console.log(`🧪 [Moderation Test] Комментарий: "${comment || 'отсутствует'}"`); console.log(`🧪 [Moderation Test] Финальное сообщение: "${finalMessage}"`); console.log(`🧪 [Moderation Test] === ТЕСТИРОВАНИЕ ЗАВЕРШЕНО ===`); res.json({ original_text: text, is_approved: isApproved, comment: comment, final_message: finalMessage, processing_time_ms: testTime }); } catch (error) { const testTime = Date.now() - testStartTime; console.error(`❌ [Moderation Test] === ОШИБКА ТЕСТИРОВАНИЯ ===`); console.error(`❌ [Moderation Test] Время до ошибки: ${testTime}мс`); console.error(`❌ [Moderation Test] Ошибка:`, error); console.error(`❌ [Moderation Test] === КОНЕЦ ОБРАБОТКИ ОШИБКИ ===`); res.status(500).json({ error: 'Moderation test failed', details: error.message, processing_time_ms: testTime }); } }); module.exports = router;