Open WebUI: ENABLE_FORWARD_USER_INFO_HEADERS=true — фикс потери контекста cptr (проброс X-OpenWebUI-Chat-Id)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -32,6 +32,11 @@ tags: [dttb, mac, ai, agent, open-webui, cptr, netbird, macos-tcc]
|
||||
- «Рулить откуда угодно» работает, пока **Mac в домашней сети** (Open WebUI без NetBird тянется только по 10.0.0.180). Для полного роуминга — добавить NetBird на LXC 142 (отложено).
|
||||
- Мозг агента зависит от NetBird на Маке (100.70.92.138). NetBird ляжет → агент без мозга (`reference_mac_sudo` для рестарта).
|
||||
|
||||
## ⚠️ Грабля 2: cptr теряет контекст между ходами в Open WebUI
|
||||
**Симптом:** в UI Олег ответил «Да» на предложение агента — cptr: «мы ещё ничего не обсуждали». Каждое новое сообщение приходило как пустая сессия.
|
||||
**Причина:** cptr — агент с **серверной сессией**, склеивает ходы по заголовку **`X-OpenWebUI-Chat-Id`** (без него — каждый запрос = новая сессия, историю из тела он НЕ использует). Open WebUI по умолчанию этот заголовок **не шлёт** (`ENABLE_FORWARD_USER_INFO_HEADERS` не задан = false). Проверено напрямую: при стабильном `X-OpenWebUI-Chat-Id` cptr помнит (ход2 без истории в теле → верный ответ); без него — забывает.
|
||||
**Фикс:** на Open WebUI (LXC 142) выставлен `ENABLE_FORWARD_USER_INFO_HEADERS=true` (форвардит `X-OpenWebUI-User-*` + `X-OpenWebUI-Chat-Id`). Это env, не persistent-config → контейнер пересоздан: `docker inspect open-webui` → дамп всех env в `/root/owui.env`, добавлен флаг, `docker run … --env-file /root/owui.env` (том `open-webui` тот же, логины/токены живы; старый контейнер держал как `open-webui-old` для отката, затем удалил). E2E через Open WebUI с одним `chat_id`: ход1 «ок» → ход2 (без истории) «73» = контекст держится.
|
||||
|
||||
## Проверено (e2e)
|
||||
chat.dttb.ru → `cptr/ai` → агент на Маке → `hostname; sw_vers; ls ~/Desktop|wc -l` = `MacBookPro.lan` / `macOS` / `16`. Список `~/Desktop` совпал с реальным. Прямой вызов cptr `/v1` и через Open WebUI — оба ок.
|
||||
|
||||
|
||||
@@ -244,6 +244,7 @@ tags: [dttb, proxmox]
|
||||
| Бэкенд | OmniRoute `http://10.0.0.179:20128/v1` (OpenAI-совместимый; ключ коннекта = **пустая строка**, НЕ dummy — с непустым неизвестным ключом OmniRoute отдаёт 0 моделей) → 242 модели; дефолт `cc/claude-opus-4-8` (делит Max-кап с german/openclaw/swarmclaw/code-server, бывает 400 «out of extra usage», fallback `kr/claude-sonnet-4.5`) |
|
||||
| Авторизация | встроенная Open WebUI (1 admin = Олег). Открытую регистрацию выключать в Admin Panel → Settings (env `ENABLE_SIGNUP` не рулит — persistent config в БД) |
|
||||
| Коннекты | 5 OpenAI-бэкендов: idx0 OmniRoute, idx1 German/Hermes (`hermes-agent`), idx2 GLM z.ai, idx3 openclaw/Антошка, **idx4 cptr (Mac)** (`cptr/ai` — агент на Маке Олега, `http://10.0.0.180:8000/v1`, рулит реальными файлами Мака; мозг OmniRoute via NetBird). Был песочница LXC 146 → перенаправлен на Mac 2026-06-30, см. [[../../decisions/2026-06-30-cptr-on-mac]] |
|
||||
| ⚠️ env-флаг для cptr | `ENABLE_FORWARD_USER_INFO_HEADERS=true` (добавлен 2026-06-30) — иначе Open WebUI не шлёт `X-OpenWebUI-Chat-Id`, и **агент cptr теряет контекст между ходами** (каждое сообщение = новая сессия). Это env, не persistent-config → контейнер пересоздан с `--env-file /root/owui.env` (туда сдамплены все 44 env через `docker inspect`, добавлен флаг); том `open-webui` сохранён |
|
||||
| Назначение | Личный веб-клиент «как ChatGPT» поверх OmniRoute. Грабли: первый старт тянет embedding-модель с HuggingFace (~1 ГБ, медленно из РФ → DNS контейнера = 1.1.1.1 против FakeIP роутера). См. [[../../decisions/2026-06-22-open-webui-deploy]] |
|
||||
|
||||
---
|
||||
|
||||
Reference in New Issue
Block a user