Архітектура й робота
Як взаємодіють частини reactive.chat: завантажувач, ядро й модулі в браузері, сервер чату, обліковий запис, серверний API, вебхуки й дані клієнтів — від відкриття сторінки до відповіді.
Складові
У браузері відвідувачів:
- loader.js — невеликий завантажувач на кілька кілобайтів. Він читає конфігурацію, перевіряє згоду, малює тимчасову кнопку чату в її остаточному місці (без зміщення макета) та створює
window.ReactiveChatіз чергою команд. Більше він нічого не робить. - Ядро (
core.<hash>.js) — вікно чату, з’єднання, маскування персональних даних, правила. Воно завантажується лише після тригера: браузер не зайнятий, миша чи палець на кнопці чату, команда API, сигнал труднощів від MousePlayer. Більшість відвідувачів ніколи не відкривають чат і тому також не завантажують його відразу. - Модулі за потреби — тури продуктом, текст конфіденційності, функції магазину; кожен лише тоді, коли потрібен.
- Ізоляція — усе розташовано в закритому shadow DOM; стилі через constructable stylesheets, без вбудованих скриптів, без
eval, без cookie.
У reactive.chat:
- Доставка за адресою
https://cdn.reactive.chat/— завантажувач, ядро, модулі. - Сервер чату за адресою
wss://ws.reactive.chat/rc_wss/— WebSocket із протоколомrc.v1; та сама адреса зhttps://для резервного каналу HTTP, офлайн-форми, завантажень, тексту конфіденційності та Smart Answer. - Обліковий запис за адресою
https://reactive.chat/app— налаштування проєкту, оформлення, база знань, панель вашої команди. - Серверний API за адресою
https://reactive.chat/v1/— REST і MCP для вашого бекенду.
На вашому боці (необов’язково):
- Ваш бекенд підписує ідентифікаційні дані користувачів, які ввійшли, відповідає на запит даних клієнтів, отримує вебхуки й викликає серверний API.
- Ваш проксі надає все через власний піддомен (Власний домен).
Послідовність відкриття сторінки
- Браузер завантажує
loader.js(асинхронно, нічого не блокуючи). - Завантажувач читає
data-rc-*,ReactiveChatSettingsі викликиbootу черзі, перевіряє ключ сайту й згоду та малює тимчасову кнопку. - Спрацьовує тригер; завантажувач завантажує ядро з тієї самої теки.
- Ядро перебирає тимчасову кнопку й чергу та послідовно виконує команди з черги.
- Воно відкриває з’єднання й надсилає
initіз ключем сайту, ID, мовою, згодою, підписаними ідентифікаційними даними за наявності та контекстом сторінки. - Сервер перевіряє джерело, проєкт та ідентифікацію й відповідає
init_ok: оформлення й тексти з облікового запису, правила, функції, ліміти, попередня історія розмови. - Віджет готовий (подія
ready). Про зміни сторінки в односторінкових застосунках він повідомляє самостійно.
Послідовність обробки запитання
- Відвідувач пише; персональні дані маскуються в браузері, а повідомлення отримує унікальний ID.
- Сервер зберігає його (повтори розпізнає за ID), маскує ще раз і підтверджує поверненням повідомлення.
- ШІ-асистент шукає в базі знань, а щодо замовлень підтвердженого користувача — додатково через кінцеву точку даних клієнтів, і передає відповідь потоком. Умови передачі вашій команді задаються в обліковому записі (Посібник).
- Паралельно події йдуть через чергу до вебхуків та інтеграцій. Чат ніколи на них не чекає.
Версії й доставка
- loader.js не має номера версії в назві й замінюється під час оновлень. Тому вбудовуйте його з
cdn.reactive.chat(або через свій проксі), а не як копію. - Ядро називається
core.<hash>.js; хеш походить із його вмісту, і кожен завантажувач точно знає своє ядро. Так завантажувач і ядро завжди узгоджені, а ядро можна кешувати надовго. - Конфігурація (оформлення, тексти, правила, тури) надходить із сервера під час кожного підключення. Зміни в обліковому записі не потребують нового фрагмента; вони діють невдовзі (залежно від налаштування — до хвилини).
- Версія протоколу —
1. Нові поля додаються, невідомі ігноруються. ReactiveChat.versionповертає версію ядра після його завантаження.
Де що налаштовувати
- В обліковому записі: вигляд, тексти, головний екран, правила, тури, A/B-тести, образ ШІ (Налаштування), команда, база знань, канали (Посібник).
- У тегу скрипту: параметри для окремої сторінки (Довідник атрибутів тегу скрипту).
- У скрипті сторінки: ідентифікація, контекст, відкриття власними елементами (JavaScript API).
- На сервері: підписи, дані клієнтів, вебхуки, API (Ідентифікація, Дані клієнтів, Вебхуки, Серверний API).
Далі: Швидкий старт
Оновлено: