Files
DLE/aidocs/TASK_CHANNEL_ONBOARDING.md
2025-10-09 16:48:20 +03:00

6.6 KiB
Raw Blame History

Задача: Система приветствий для каналов коммуникации

Контекст

В системе реализованы три канала взаимодействия с пользователями:

  • Web - чат на сайте
  • Telegram - бот в мессенджере
  • Email - почтовый робот

У каждого канала своя специфика первого контакта:

  • Web: сразу при открытии чата
  • Telegram: после нажатия /start
  • Email: после получения первого письма

Текущее состояние

Что работает:

  • AI Assistant с настройками промптов, RAG таблиц, правил
  • Векторный поиск по базе знаний (таблицы типа Notion)
  • Система плейсхолдеров для подстановки данных
  • Обработка сообщений от авторизованных пользователей

Что НЕ работает:

  • Первое взаимодействие не использует RAG и настройки AI
  • Нет автоматических приветствий с контекстом
  • Каждый канал обрабатывается по-разному
  • Нет UI для управления приветствиями

Требования

1. Использовать существующую инфраструктуру

  • Настройки из /settings/ai/assistant (system_prompt, RAG tables, rules)
  • Векторный поиск для получения актуального контекста
  • Плейсхолдеры из таблиц базы данных

2. Генерация приветствий с AI

При первом контакте:

  1. Загрузить настройки AI Assistant
  2. Выполнить RAG-поиск по выбранным таблицам
  3. Сгенерировать контекстное приветствие через LLM
  4. Запомнить, что приветствие показано

3. Специфика каналов

Учесть особенности каждого канала:

  • Web: показать приветствие сразу при загрузке чата
  • Telegram: отправить при команде /start
  • Email: отправить автоответ на первое письмо

4. UI для управления

Добавить в /settings/ai/assistant секцию:

┌──────────────────────────────────────┐
│ Настройки первого контакта           │
├──────────────────────────────────────┤
│ [Web] [Telegram] [Email]             │
│                                      │
│ ☑ Включить AI-приветствие           │
│ ☑ Использовать RAG                  │
│ ☑ Применять правила                 │
│                                      │
│ Дополнительный промпт:               │
│ [текстовое поле]                     │
└──────────────────────────────────────┘

Техническая реализация

БД: Таблица конфигурации каналов

CREATE TABLE channel_welcome_configs (
  id SERIAL PRIMARY KEY,
  channel VARCHAR(20) UNIQUE NOT NULL,
  is_enabled BOOLEAN DEFAULT true,
  use_ai_assistant_settings BOOLEAN DEFAULT true,
  custom_prompt_encrypted TEXT,
  show_on VARCHAR(20) DEFAULT 'first_contact',
  created_at TIMESTAMP DEFAULT NOW(),
  updated_at TIMESTAMP DEFAULT NOW()
);

БД: Таблица отслеживания первых контактов

CREATE TABLE first_contact_tracking (
  id SERIAL PRIMARY KEY,
  identifier_hash VARCHAR(64) NOT NULL,
  channel VARCHAR(20) NOT NULL,
  welcome_shown BOOLEAN DEFAULT false,
  first_message_at TIMESTAMP DEFAULT NOW(),
  UNIQUE(identifier_hash, channel)
);

Backend: Сервис ChannelWelcomeService

class ChannelWelcomeService {
  // Проверить, показывали ли приветствие
  async isFirstContact(identifier, channel);
  
  // Загрузить настройки канала
  async getChannelConfig(channel);
  
  // Сгенерировать AI-приветствие
  async generateWelcome(channel, identifier);
  
  // Пометить, что приветствие показано
  async markWelcomeShown(identifier, channel);
}

Интеграция с существующим кодом

1. Обновить unifiedMessageProcessor.js:

async function processMessage(messageData) {
  const { userId, channel, identifier } = messageData;
  
  // Проверяем первый контакт
  if (await channelWelcomeService.isFirstContact(identifier, channel)) {
    const welcome = await channelWelcomeService.generateWelcome(channel, identifier);
    await channelWelcomeService.markWelcomeShown(identifier, channel);
    
    // Добавляем приветствие в ответ
    messageData.systemMessage = welcome;
  }
  
  // Остальная обработка...
}

2. Обновить WebBot, TelegramBot, EmailBot:

  • Добавить метод sendSystemMessage() для отправки приветствий
  • При первом сообщении запрашивать приветствие у ChannelWelcomeService

3. Frontend: расширить AiAssistantSettings.vue:

  • Добавить секцию "Настройки каналов"
  • Табы для Web/Telegram/Email
  • Настройки: вкл/выкл, использовать RAG, доп. промпт

Результат

После реализации:

  • Каждый канал генерирует умные приветствия с RAG
  • Используются существующие настройки AI Assistant
  • Админ управляет через UI
  • Отслеживание первых контактов
  • Масштабируемость для новых каналов

Приоритет

Средний - улучшает UX, но не критично для работы системы.

Оценка времени

3-4 часа разработки + тестирование.