Чат-виджет — это JS-скрипт, который вы встраиваете на свой сайт (маркетинговый, поддержки, приложение). Он открывает окно диалога, работающее на базе одного из ваших pipeline betool; ответы агента отображаются по мере генерации (streaming).
Возможности
- Один сниппет для вставки на вашу страницу. Без npm-зависимостей; виджет живёт в Shadow DOM, поэтому CSS вашего сайта его не искажает (и наоборот).
- Публичный токен — его можно перевыпустить в любой момент из редактора. Никаких секретов на стороне клиента.
- Непрерывность в рамках вкладки — идентификатор диалога хранится в
sessionStorage: перезагрузка страницы продолжает диалог, закрытие вкладки его завершает. Виджет не устанавливает никаких cookie. - 8 языков — интерфейс виджета следует языку браузера посетителя.
- Защита от злоупотреблений включена по умолчанию — 20 сообщений в минуту с одного IP, 10 новых сессий в минуту с одного IP, максимум 4 000 символов на сообщение (настраивается;
0отключает защиту). Глобальный лимит на виджет (20-кратный лимит на IP) также блокирует наплыв запросов, распределённый по нескольким IP.
Настройка
- В редакторе модели настройте узел Start с приёмником Чат (веб-виджет).
- При сохранении betool генерирует публичный токен и показывает сниппет интеграции, готовый к копированию:
<script src="https://platform.betool.ai/widget/v1/widget.js"></script>
<script>
BetoolChat.init({ token: "<token-public-du-widget>" });
</script>
- Вставьте этот сниппет в тег
<body>вашего сайта. Виджет появляется автоматически, по умолчанию в правом нижнем углу.
Кастомизация
В конфигурации приёмника:
- Внешний вид — отображаемый заголовок, основной цвет, положение (четыре угла), форма кнопки запуска (вкладка или пузырь) и её подпись.
- Тексты — приветственное сообщение, текст поля ввода, текст статуса (или переведённое отображение «в сети»).
- Отображение — рендеринг markdown в ответах (включён по умолчанию).
- Контекст страницы — передаёт с каждым сообщением origin и путь текущей страницы (никогда не query string). Включено по умолчанию, можно отключить.
- Область действия — ограничение разрешённых origin.
Безопасность
token публичен по замыслу: он позволяет только общаться с моделью, у которой есть этот приёмник. Если вы перечислите разрешённые origin, запрос с другого origin отклоняется на стороне сервера (403); пустой список (или *) не накладывает никаких ограничений — оставьте это для разработки. Чтобы отозвать скомпрометированный токен: кнопка перевыпустить рядом с публичным URL в конфигурации приёмника (все сниппеты, уже работающие в продакшене, перестают функционировать).