chore(i18n): refresh uk translations
This commit is contained in:
parent
1a0371551e
commit
aed8dbb276
@ -4,68 +4,69 @@ read_when:
|
||||
summary: Статичний хост Loopback WebChat і використання Gateway WS для інтерфейсу чату
|
||||
title: Вебчат
|
||||
x-i18n:
|
||||
generated_at: "2026-05-02T23:43:16Z"
|
||||
generated_at: "2026-05-03T04:33:34Z"
|
||||
model: gpt-5.5
|
||||
provider: openai
|
||||
source_hash: fe6d3cb30ed18d651b0d0ca8fd188b47c5f1d186410ee340deb79315f194ed8d
|
||||
source_hash: 48024e58259901c6feb67168c5c1ce32f46b8ad9b6f4511e56d2000478a3ed60
|
||||
source_path: web/webchat.md
|
||||
workflow: 16
|
||||
---
|
||||
|
||||
Статус: macOS/iOS SwiftUI UI чату напряму взаємодіє з Gateway WebSocket.
|
||||
Стан: чат-інтерфейс SwiftUI для macOS/iOS напряму взаємодіє з Gateway WebSocket.
|
||||
|
||||
## Що це таке
|
||||
|
||||
- Нативний UI чату для Gateway (без вбудованого браузера й без локального статичного сервера).
|
||||
- Використовує ті самі сеанси та правила маршрутизації, що й інші канали.
|
||||
- Нативний чат-інтерфейс для шлюзу (без вбудованого браузера і без локального статичного сервера).
|
||||
- Використовує ті самі сесії та правила маршрутизації, що й інші канали.
|
||||
- Детермінована маршрутизація: відповіді завжди повертаються до WebChat.
|
||||
|
||||
## Швидкий старт
|
||||
|
||||
1. Запустіть Gateway.
|
||||
2. Відкрийте UI WebChat (застосунок macOS/iOS) або вкладку чату Control UI.
|
||||
3. Переконайтеся, що налаштовано дійсний шлях автентифікації Gateway (типово shared-secret,
|
||||
1. Запустіть шлюз.
|
||||
2. Відкрийте інтерфейс WebChat (застосунок macOS/iOS) або вкладку чату Control UI.
|
||||
3. Переконайтеся, що налаштовано чинний шлях автентифікації шлюзу (`shared-secret` за замовчуванням,
|
||||
навіть на loopback).
|
||||
|
||||
## Як це працює (поведінка)
|
||||
|
||||
- UI підключається до Gateway WebSocket і використовує `chat.history`, `chat.send` та `chat.inject`.
|
||||
- `chat.history` обмежено для стабільності: Gateway може обрізати довгі текстові поля, пропускати важкі метадані та замінювати надмірно великі записи на `[chat.history omitted: message too large]`.
|
||||
- `chat.history` слідує активній гілці транскрипту для сучасних append-only файлів сеансів, тому покинуті гілки перезапису та замінені копії промптів не відображаються у WebChat.
|
||||
- Control UI запам’ятовує базовий `sessionId` Gateway, повернений `chat.history`, і додає його до наступних викликів `chat.send`, тому повторні підключення та оновлення сторінки продовжують ту саму збережену розмову, якщо користувач не почне або не скине сеанс.
|
||||
- Control UI об’єднує дублікати поточних надсилань для того самого сеансу, повідомлення та вкладень перед створенням нового ідентифікатора запуску `chat.send`; Gateway усе одно дедуплікує повторні запити, які повторно використовують той самий ключ ідемпотентності.
|
||||
- `chat.history` обмежено для стабільності: Gateway може обрізати довгі текстові поля, пропускати важкі метадані та замінювати завеликі записи на `[chat.history omitted: message too large]`.
|
||||
- `chat.history` дотримується активної гілки транскрипту для сучасних append-only файлів сесій, тому покинуті гілки перезапису та замінені копії промптів не відображаються у WebChat.
|
||||
- Записи Compaction відображаються як явний розділювач ущільненої історії. Розділювач пояснює, що попередні ходи збережено в контрольній точці, і посилається на елементи керування контрольними точками сесій, де оператори можуть створити гілку або відновити подання до Compaction, якщо їхні дозволи це допускають.
|
||||
- Control UI запам’ятовує базовий `sessionId` Gateway, повернений `chat.history`, і додає його до наступних викликів `chat.send`, тому повторні підключення та оновлення сторінки продовжують ту саму збережену розмову, якщо користувач не запускає або не скидає сесію.
|
||||
- Control UI об’єднує дублікати відправлень у польоті для тієї самої сесії, повідомлення та вкладень перед створенням нового ідентифікатора запуску `chat.send`; Gateway усе одно дедуплікує повторні запити, які повторно використовують той самий ключ ідемпотентності.
|
||||
- `chat.history` також нормалізується для відображення: контекст OpenClaw лише часу виконання,
|
||||
обгортки вхідних конвертів, вбудовані теги директив доставки,
|
||||
як-от `[[reply_to_*]]` і `[[audio_as_voice]]`, XML-навантаження викликів інструментів у звичайному тексті
|
||||
обгортки вхідних конвертів, вбудовані теги директив доставлення
|
||||
на кшталт `[[reply_to_*]]` і `[[audio_as_voice]]`, plain-text XML-навантаження викликів інструментів
|
||||
(зокрема `<tool_call>...</tool_call>`,
|
||||
`<function_call>...</function_call>`, `<tool_calls>...</tool_calls>`,
|
||||
`<function_calls>...</function_calls>` та обрізані блоки викликів інструментів), а також
|
||||
витоки ASCII/повноширинних токенів керування моделлю вилучаються з видимого тексту,
|
||||
а записи асистента, увесь видимий текст яких є лише точним тихим
|
||||
витеклі ASCII/повноширинні токени керування моделлю вилучаються з видимого тексту,
|
||||
а записи асистента, увесь видимий текст яких є лише точним silent
|
||||
токеном `NO_REPLY` / `no_reply`, пропускаються.
|
||||
- Навантаження відповідей із прапорцем reasoning (`isReasoning: true`) виключаються з вмісту асистента у WebChat, тексту повторного відтворення транскрипту та блоків аудіовмісту, тому навантаження лише для міркування не з’являються як видимі повідомлення асистента або відтворюване аудіо.
|
||||
- `chat.inject` додає нотатку асистента безпосередньо до транскрипту й транслює її в UI (без запуску агента).
|
||||
- Перервані запуски можуть зберігати частковий вивід асистента видимим в UI.
|
||||
- Навантаження відповідей, позначені як міркування (`isReasoning: true`), виключаються з вмісту асистента WebChat, тексту повторного відтворення транскрипту та аудіоблоків, тому навантаження лише для мислення не з’являються як видимі повідомлення асистента або відтворюване аудіо.
|
||||
- `chat.inject` додає нотатку асистента безпосередньо до транскрипту та транслює її в UI (без запуску агента).
|
||||
- Перервані запуски можуть залишати частковий вивід асистента видимим в UI.
|
||||
- Gateway зберігає перерваний частковий текст асистента в історії транскрипту, коли існує буферизований вивід, і позначає ці записи метаданими переривання.
|
||||
- Історія завжди отримується з Gateway (без локального відстеження файлів).
|
||||
- Якщо Gateway недоступний, WebChat працює лише для читання.
|
||||
- Історія завжди отримується зі шлюзу (без локального спостереження за файлами).
|
||||
- Якщо шлюз недоступний, WebChat доступний лише для читання.
|
||||
|
||||
## Панель інструментів агентів Control UI
|
||||
|
||||
- Панель Tools у Control UI `/agents` має два окремі подання:
|
||||
- **Доступно просто зараз** використовує `tools.effective(sessionKey=...)` і показує, що поточний
|
||||
сеанс фактично може використовувати під час виконання, зокрема інструменти ядра, plugin і каналу.
|
||||
- Панель інструментів Control UI `/agents` має два окремі подання:
|
||||
- **Доступні прямо зараз** використовує `tools.effective(sessionKey=...)` і показує, що поточна
|
||||
сесія фактично може використовувати під час виконання, зокрема інструменти ядра, Plugin і каналу.
|
||||
- **Конфігурація інструментів** використовує `tools.catalog` і зосереджується на профілях, перевизначеннях і
|
||||
семантиці каталогу.
|
||||
- Доступність під час виконання обмежена сеансом. Перемикання сеансів на тому самому агенті може змінити
|
||||
список **Доступно просто зараз**.
|
||||
- Доступність під час виконання прив’язана до сесії. Перемикання сесій для того самого агента може змінити
|
||||
список **Доступні прямо зараз**.
|
||||
- Редактор конфігурації не означає доступність під час виконання; ефективний доступ усе одно дотримується пріоритету політик
|
||||
(`allow`/`deny`, перевизначення для окремих агентів і provider/каналів).
|
||||
(`allow`/`deny`, перевизначення для окремих агентів і провайдерів/каналів).
|
||||
|
||||
## Віддалене використання
|
||||
|
||||
- Віддалений режим тунелює Gateway WebSocket через SSH/Tailscale.
|
||||
- Не потрібно запускати окремий сервер WebChat.
|
||||
- Вам не потрібно запускати окремий сервер WebChat.
|
||||
|
||||
## Довідник конфігурації (WebChat)
|
||||
|
||||
@ -73,20 +74,20 @@ x-i18n:
|
||||
|
||||
Параметри WebChat:
|
||||
|
||||
- `gateway.webchat.chatHistoryMaxChars`: максимальна кількість символів для текстових полів у відповідях `chat.history`. Коли запис транскрипту перевищує цей ліміт, Gateway обрізає довгі текстові поля та може замінювати надмірно великі повідомлення заповнювачем. Клієнт також може надіслати `maxChars` для окремого запиту, щоб перевизначити це типове значення для одного виклику `chat.history`.
|
||||
- `gateway.webchat.chatHistoryMaxChars`: максимальна кількість символів для текстових полів у відповідях `chat.history`. Коли запис транскрипту перевищує це обмеження, Gateway обрізає довгі текстові поля та може замінити завеликі повідомлення заповнювачем. Клієнт також може надіслати `maxChars` для окремого запиту, щоб перевизначити це значення за замовчуванням для одного виклику `chat.history`.
|
||||
|
||||
Пов’язані глобальні параметри:
|
||||
|
||||
- `gateway.port`, `gateway.bind`: хост/порт WebSocket.
|
||||
- `gateway.auth.mode`, `gateway.auth.token`, `gateway.auth.password`:
|
||||
автентифікація WebSocket за shared-secret.
|
||||
автентифікація WebSocket зі спільним секретом.
|
||||
- `gateway.auth.allowTailscale`: вкладка чату браузерного Control UI може використовувати заголовки ідентичності Tailscale
|
||||
Serve, коли це ввімкнено.
|
||||
- `gateway.auth.mode: "trusted-proxy"`: автентифікація через зворотний проксі для браузерних клієнтів за identity-aware джерелом проксі **не-loopback** (див. [Автентифікація довіреного проксі](/uk/gateway/trusted-proxy-auth)).
|
||||
- `gateway.remote.url`, `gateway.remote.token`, `gateway.remote.password`: ціль віддаленого Gateway.
|
||||
- `session.*`: сховище сеансів і типові значення основного ключа.
|
||||
- `gateway.auth.mode: "trusted-proxy"`: автентифікація через зворотний проксі для браузерних клієнтів за identity-aware **non-loopback** джерелом проксі (див. [автентифікація довіреного проксі](/uk/gateway/trusted-proxy-auth)).
|
||||
- `gateway.remote.url`, `gateway.remote.token`, `gateway.remote.password`: ціль віддаленого шлюзу.
|
||||
- `session.*`: сховище сесій і типові значення основного ключа.
|
||||
|
||||
## Пов’язане
|
||||
|
||||
- [Control UI](/uk/web/control-ui)
|
||||
- [Панель керування](/uk/web/dashboard)
|
||||
- [Панель моніторингу](/uk/web/dashboard)
|
||||
|
||||
Loading…
Reference in New Issue
Block a user