Веб-виджет размещает агента AiHummer на вашем сайте в виде встраиваемого
чат-лаунчера. Посетитель кликает по «пузырю», пишет сообщение и получает ответы
стримингом из того же turn-движка, что питает все остальные каналы.
Виджет раздаётся самим gateway по пути /widget/, поэтому отдельный сервис
запускать не нужно.
Как устроено встраивание
Виджет доставляется тремя слоями, спроектированными так, чтобы оставаться
изолированными от стилей и скриптов вашей страницы:
Небольшой загрузчик <script>, который вы вставляете на страницу.
Лаунчер в shadow-root — «пузырь» чата и панель отрисовываются внутри
Shadow DOM, поэтому ваш CSS и CSS виджета никогда не конфликтуют.
Same-origin iframe, в котором размещается сама поверхность чата.
Сниппет для встраивания
Добавьте скрипт-загрузчик на любую страницу, где должен быть доступен агент,
обычно прямо перед закрывающим тегом </body>:
Загрузчик раздаётся тем же gateway, который выполняет ваших агентов, поэтому
поверхность чата находится в том же origin, что и ассеты виджета.
Эндпоинты за виджетом
Виджет общается с двумя эндпоинтами gateway:
POST /v1/web/sessionGET /v1/web/stream
POST /v1/web/session открывает веб-сессию чата.
GET /v1/web/stream стримит ответ агента через Server-Sent Events
(SSE), поэтому ответы появляются токен за токеном.
Конфигурация
Чтобы виджет корректно раздавался и диспетчеризовался, нужны две настройки:
AIHUMMER_WIDGET_DIR — каталог ассетов виджета, которые gateway раздаёт по
пути /widget/.
AIHUMMER_DEFAULT_WORKSPACE_ID — рабочее пространство по умолчанию, в
которое попадают входящие веб-сессии.
[!NOTE]
Виджет раздаётся gateway по пути /widget/; отдельный процесс для него
разворачивать не нужно. Терминируйте TLS на вашем reverse-proxy так же, как и
для остального gateway.
**Веб-виджет размещает агента AiHummer на вашем сайте** в виде встраиваемого
чат-лаунчера. Посетитель кликает по «пузырю», пишет сообщение и получает ответы
стримингом из того же turn-движка, что питает все остальные каналы.
Виджет раздаётся самим gateway по пути `/widget/`, поэтому отдельный сервис
запускать не нужно.
## Как устроено встраивание
Виджет доставляется тремя слоями, спроектированными так, чтобы оставаться
изолированными от стилей и скриптов вашей страницы:
1. Небольшой **загрузчик `<script>`**, который вы вставляете на страницу.
2. **Лаунчер в shadow-root** — «пузырь» чата и панель отрисовываются внутри
Shadow DOM, поэтому ваш CSS и CSS виджета никогда не конфликтуют.
3. **Same-origin iframe**, в котором размещается сама поверхность чата.
## Сниппет для встраивания
Добавьте скрипт-загрузчик на любую страницу, где должен быть доступен агент,
обычно прямо перед закрывающим тегом `</body>`:
```html
<script
src="https://ваш-aihummer-хост/widget/loader.js"
async>
</script>
```
Загрузчик раздаётся тем же gateway, который выполняет ваших агентов, поэтому
поверхность чата находится в том же origin, что и ассеты виджета.
## Эндпоинты за виджетом
Виджет общается с двумя эндпоинтами gateway:
```http
POST /v1/web/session
GET /v1/web/stream
```
- **`POST /v1/web/session`** открывает веб-сессию чата.
- **`GET /v1/web/stream`** стримит ответ агента через **Server-Sent Events
(SSE)**, поэтому ответы появляются токен за токеном.
## Конфигурация
Чтобы виджет корректно раздавался и диспетчеризовался, нужны две настройки:
- **`AIHUMMER_WIDGET_DIR`** — каталог ассетов виджета, которые gateway раздаёт по
пути `/widget/`.
- **`AIHUMMER_DEFAULT_WORKSPACE_ID`** — рабочее пространство по умолчанию, в
которое попадают входящие веб-сессии.
> [!NOTE]
> Виджет раздаётся gateway по пути `/widget/`; отдельный процесс для него
> разворачивать не нужно. Терминируйте TLS на вашем reverse-proxy так же, как и
> для остального gateway.
## Куда дальше
- Для чат-приложений см. [Telegram](/v1.0/channels/telegram) и
[MAX](/v1.0/channels/max).
- Для нативного приложения см. [Мобильный клиент](/v1.0/channels/mobile-client).
- Для своих интеграций см. [Generic inbound](/v1.0/channels/generic-inbound).