chore(i18n): refresh uk translations
This commit is contained in:
parent
8140160a28
commit
dc506e7d02
@ -1,87 +1,77 @@
|
||||
---
|
||||
read_when:
|
||||
- Налагодження або налаштування доступу до WebChat
|
||||
summary: Статичний хост Loopback WebChat і використання Gateway WS для інтерфейсу чату
|
||||
summary: Статичний хостинг WebChat у loopback і використання Gateway WS для інтерфейсу чату
|
||||
title: WebChat
|
||||
x-i18n:
|
||||
generated_at: "2026-04-26T08:42:54Z"
|
||||
generated_at: "2026-04-27T19:49:02Z"
|
||||
model: gpt-5.4
|
||||
provider: openai
|
||||
source_hash: eb64bf7771f833a6d97c1b0ad773e763422af25e85a3084519e05aa8d3d0ab69
|
||||
source_hash: d8a4fef0aab37ca82bff249c6b31eb65475f12c16dfb9b86ddd62c1a938a34f3
|
||||
source_path: web/webchat.md
|
||||
workflow: 15
|
||||
---
|
||||
|
||||
Статус: інтерфейс чату macOS/iOS SwiftUI напряму взаємодіє з WebSocket Gateway.
|
||||
Статус: інтерфейс чату SwiftUI для macOS/iOS напряму взаємодіє з Gateway WebSocket.
|
||||
|
||||
## Що це таке
|
||||
|
||||
- Нативний інтерфейс чату для gateway (без вбудованого браузера та без локального статичного сервера).
|
||||
- Використовує ті самі сесії та правила маршрутизації, що й інші канали.
|
||||
- Нативний інтерфейс чату для gateway (без вбудованого браузера і без локального статичного сервера).
|
||||
- Використовує ті самі сеанси й правила маршрутизації, що й інші канали.
|
||||
- Детермінована маршрутизація: відповіді завжди повертаються до WebChat.
|
||||
|
||||
## Швидкий старт
|
||||
|
||||
1. Запустіть gateway.
|
||||
2. Відкрийте інтерфейс WebChat (застосунок macOS/iOS) або вкладку чату в Control UI.
|
||||
3. Переконайтеся, що налаштовано дійсний шлях автентифікації gateway (типово `shared-secret`,
|
||||
навіть у `loopback`).
|
||||
3. Переконайтеся, що налаштовано дійсний шлях автентифікації gateway (типово — shared-secret, навіть у loopback).
|
||||
|
||||
## Як це працює (поведінка)
|
||||
|
||||
- Інтерфейс підключається до WebSocket Gateway і використовує `chat.history`, `chat.send` та `chat.inject`.
|
||||
- Інтерфейс підключається до Gateway WebSocket і використовує `chat.history`, `chat.send` і `chat.inject`.
|
||||
- `chat.history` обмежений для стабільності: Gateway може обрізати довгі текстові поля, пропускати важкі метадані та замінювати надто великі записи на `[chat.history omitted: message too large]`.
|
||||
- `chat.history` також нормалізується для відображення: із видимого тексту прибираються контекст OpenClaw лише для runtime, вхідні обгортки envelope, вбудовані теги директив доставки
|
||||
на кшталт `[[reply_to_*]]` і `[[audio_as_voice]]`, XML-навантаження викликів інструментів у звичайному тексті
|
||||
(зокрема `<tool_call>...</tool_call>`,
|
||||
`<function_call>...</function_call>`, `<tool_calls>...</tool_calls>`,
|
||||
`<function_calls>...</function_calls>` і обрізані блоки викликів інструментів), а також
|
||||
витоки ASCII/full-width токенів керування моделі; записи assistant, у яких увесь видимий текст складається лише з точного
|
||||
тихого токена `NO_REPLY` / `no_reply`, пропускаються.
|
||||
- Навантаження відповідей, позначені як міркування (`isReasoning: true`), виключаються з вмісту assistant у WebChat, тексту відтворення транскрипту та аудіоблоків вмісту, щоб навантаження лише з міркуваннями не відображалися як видимі повідомлення assistant або аудіо для відтворення.
|
||||
- `chat.inject` напряму додає примітку assistant до транскрипту та транслює її в інтерфейс (без запуску агента).
|
||||
- Перервані запуски можуть залишати частковий вивід assistant видимим в інтерфейсі.
|
||||
- Gateway зберігає частковий текст assistant із перерваних запусків в історії транскрипту, коли існує буферизований вивід, і позначає ці записи метаданими переривання.
|
||||
- `chat.history` дотримується активної гілки транскрипту для сучасних append-only файлів сеансу, тож покинуті гілки перезапису й витіснені копії промптів не відображаються у WebChat.
|
||||
- Control UI об’єднує дублікати поточних відправлень для того самого сеансу, повідомлення й вкладень перед створенням нового run id для `chat.send`; Gateway усе одно дедуплікує повторні запити, що повторно використовують той самий idempotency key.
|
||||
- `chat.history` також нормалізується для відображення: з видимого тексту прибираються контекст OpenClaw лише для runtime, обгортки вхідних конвертів, вбудовані теги директив доставки на кшталт `[[reply_to_*]]` і `[[audio_as_voice]]`, XML-пейлоади викликів інструментів у plain text (зокрема `<tool_call>...</tool_call>`, `<function_call>...</function_call>`, `<tool_calls>...</tool_calls>`, `<function_calls>...</function_calls>` і обрізані блоки викликів інструментів), а також ASCII/full-width токени керування моделі, що просочилися; записи помічника, весь видимий текст яких складається лише з точного silent token `NO_REPLY` / `no_reply`, пропускаються.
|
||||
- Пейлоади відповідей, позначені як reasoning (`isReasoning: true`), виключаються з вмісту повідомлень помічника у WebChat, тексту повторного відтворення транскрипту та аудіоблоків, щоб пейлоади лише з міркуваннями не з’являлися як видимі повідомлення помічника або відтворюване аудіо.
|
||||
- `chat.inject` напряму додає нотатку помічника до транскрипту й транслює її в інтерфейс (без запуску агента).
|
||||
- Перервані запуски можуть залишати частковий вивід помічника видимим в інтерфейсі.
|
||||
- Gateway зберігає частковий текст помічника з перерваних запусків в історії транскрипту, коли існує буферизований вивід, і позначає такі записи метаданими переривання.
|
||||
- Історія завжди отримується з gateway (без локального відстеження файлів).
|
||||
- Якщо gateway недосяжний, WebChat працює лише для читання.
|
||||
- Якщо gateway недосяжний, WebChat доступний лише для читання.
|
||||
|
||||
## Панель інструментів агентів у Control UI
|
||||
|
||||
- Панель Tools у `/agents` в Control UI має два окремі подання:
|
||||
- **Доступно зараз** використовує `tools.effective(sessionKey=...)` і показує, що поточна
|
||||
сесія реально може використовувати під час runtime, включно з інструментами core, Plugin і каналів.
|
||||
- **Налаштування інструментів** використовує `tools.catalog` і залишається зосередженою на профілях, перевизначеннях і
|
||||
семантиці каталогу.
|
||||
- Доступність під час runtime прив’язана до сесії. Перемикання сесій для того самого агента може змінити список
|
||||
**Доступно зараз**.
|
||||
- Редактор конфігурації не означає доступності під час runtime; фактичний доступ і надалі визначається пріоритетом політик
|
||||
(`allow`/`deny`, перевизначеннями для окремих агентів і provider/channel).
|
||||
- Панель Tools у розділі `/agents` в Control UI має два окремі подання:
|
||||
- **Доступно зараз** використовує `tools.effective(sessionKey=...)` і показує, що поточний сеанс справді може використовувати під час runtime, зокрема інструменти, що належать core, Plugin і каналу.
|
||||
- **Конфігурація інструментів** використовує `tools.catalog` і залишається зосередженою на профілях, перевизначеннях і семантиці каталогу.
|
||||
- Доступність під час runtime прив’язана до сеансу. Перемикання між сеансами на тому самому агенті може змінити список **Доступно зараз**.
|
||||
- Редактор конфігурації не означає доступність під час runtime; фактичний доступ і далі визначається пріоритетом політик (`allow`/`deny`, перевизначеннями для окремого агента та provider/channel).
|
||||
|
||||
## Віддалене використання
|
||||
|
||||
- Віддалений режим тунелює WebSocket gateway через SSH/Tailscale.
|
||||
- Віддалений режим тунелює Gateway WebSocket через SSH/Tailscale.
|
||||
- Вам не потрібно запускати окремий сервер WebChat.
|
||||
|
||||
## Довідник із конфігурації (WebChat)
|
||||
## Довідник з конфігурації (WebChat)
|
||||
|
||||
Повна конфігурація: [Конфігурація](/uk/gateway/configuration)
|
||||
|
||||
Параметри 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`.
|
||||
- `gateway.auth.allowTailscale`: вкладка чату browser у Control UI може використовувати заголовки ідентичності Tailscale
|
||||
Serve, якщо це ввімкнено.
|
||||
- `gateway.auth.mode: "trusted-proxy"`: автентифікація через reverse proxy для browser-клієнтів за **не-loopback** джерелом proxy, обізнаного про ідентичність (див. [Автентифікація Trusted Proxy](/uk/gateway/trusted-proxy-auth)).
|
||||
автентифікація WebSocket через shared-secret.
|
||||
- `gateway.auth.allowTailscale`: вкладка чату браузерного Control UI може використовувати заголовки ідентифікації Tailscale Serve, якщо це ввімкнено.
|
||||
- `gateway.auth.mode: "trusted-proxy"`: автентифікація через reverse proxy для браузерних клієнтів за identity-aware **не-loopback** джерелом proxy (див. [Автентифікація Trusted Proxy](/uk/gateway/trusted-proxy-auth)).
|
||||
- `gateway.remote.url`, `gateway.remote.token`, `gateway.remote.password`: цільовий віддалений gateway.
|
||||
- `session.*`: сховище сесій і типові значення основного ключа.
|
||||
- `session.*`: сховище сеансів і типові значення основного ключа.
|
||||
|
||||
## Пов’язане
|
||||
|
||||
- [Control UI](/uk/web/control-ui)
|
||||
- [Dashboard](/uk/web/dashboard)
|
||||
- [Панель керування](/uk/web/dashboard)
|
||||
|
||||
Loading…
Reference in New Issue
Block a user