WebChat и Веб-Виджет

Веб-виджет — это автономный мультимедийный чат-клиент (app/bot/platforms/webchat.py и app/admin/static/webchat.js), поддерживающий реалтайм стриминг по WebSocket и встраивание на любой сайт.

sequenceDiagram autonumber actor Widget as Client Widget (webchat.js) participant Server as WebChat Router (/ws/webchat/{token}) participant Session as Session Signer (HMAC) participant Core as Core Dispatcher participant CRM as CRM Service (export_user_to_crm) Widget->>Server: Подключение WS /ws/webchat/{token} Server->>Session: Проверка и подпись сессии (issue_session) Session-->>Widget: Кука сессии + токен авторизации Widget->>Server: send_message (текст / Opus голосовое / photo drag-and-drop) Server->>Core: Нормализованное IncomingMessage Core-->>Server: Стриминг токенов ответа + статусов инструментов Server-->>Widget: WS кадры текста, звука и картинок opt Заполнение Лид-Формы (Profile Submission) Widget->>Server: submit_profile (name, phone, email, custom_fields) Server->>Core: Обновление карточки User + начисление бонуса Server->>CRM: Немедленный экспорт контакта в CRM Server-->>Widget: Подтверждение сохранения контактов end

Код Встраивания на Сайт

<script 
  src="https://your-domain.com/static/webchat.js" 
  data-bot-token="YOUR_BOT_TOKEN" 
  data-theme="dark"
  data-position="bottom-right">
</script>

Основные Возможности WebChat

  1. WebSocket & CORS-over-WS: Полная поддержка кросс-доменного дуплексного взаимодействия в sandboxed iframe.
  2. Запись Голоса: Встроенный микрофонный модуль на базе MediaRecorder с кодированием в Opus.
  3. Загрузка Изображений: Отправка картинок через Drag-and-Drop, вставку из буфера обмена (Ctrl+V) и выбор из галереи.
  4. Модальная Лид-Форма: Настраиваемые поля сбора контактов. Автоматическое начисление бонусов (lead_reward_granted) и интеграция с CRM.