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