--- type: project status: draft tags: [niikn, ai, assistant, nextcloud, open-webui, omniroute, concept] aliases: ["AI-ассистент НИИКН", "ИИ для сотрудников НИИКН", "NIIKN AI assistant"] created: 2026-06-24 --- # Концепция: AI-ассистент для сотрудников НИИКН > Цель — заменить Яндекс Алису корпоративным ИИ-ассистентом, который **видит документы и почту НИИКН**, **уважает права доступа** сотрудников и **работает в их привычных инструментах** (Nextcloud), оставаясь под контролем в нашем контуре. ~20 сотрудников, из них 6 — административный отдел. ## 1. Зафиксированные решения (развилки) | Развилка | Выбор Олега | Следствие | |---|---|---| | Куда уходят данные | **Облако через Max (Opus 4.8)** | Инференс через omniroute → `cc/claude-opus-4-8`. Быстрый старт, ~0 ₽/токены. Содержимое уходит в Anthropic (US) — годится, т.к. данные НИИКН не гостайна | | Интерфейс (фаза 1) | **Оба: Nextcloud Assistant + Open WebUI** | NC-ассистент в рабочем потоке (файлы) + отдельный веб-чат как замена Алисе | | Почта | **Не приоритет** | Старт — поиск по 2.7 ТБ документов и работа с файлами. Mailcow подключаем в фазе 3 | ## 2. Что уже есть в контуре НИИКН (ничего не строим с нуля) - **VM 108** — Nextcloud AIO **32.0.6** (~102 аккаунта, `niikn.com`). NC 32 несёт **Assistant** + **Context Chat** (RAG по своим файлам) из коробки. - **SMB (LXC 110)** — 2.7 ТБ документов (groupfolders «Общий ресурс» 1.5 ТБ + «ГИКЭ_ВОКН_Москва» 1.2 ТБ). **Уже смонтирован на VM108** как `/mnt/ncsmb` → доступен Nextcloud для индексации без перекачки. - **omniroute** — шлюз к моделям (Opus 4.8 через Max + бесплатные фолбэки). OpenAI-совместимый `/v1`. - **swarmclaw** — оркестратор (back-office автоматизация, фаза 3+). - **VM 106 Mailcow** — свой почтовый сервер (`mail.niikn.com`) для фазы 3. - Дома обкатан **Open WebUI** ([[decisions/2026-06-22-open-webui-deploy]]) — готовая многопользовательская веб-морда с ролями и RAG. Деплой на pve-niikn = копия проверенного рецепта. ## 3. По поводу clawdbot vs Hermes Agent — важный нюанс Ты прав, что **Hermes во многом лучше clawdbot** — но это про *персонального* агента. Оба (clawdbot, Hermes/German) — **одно-пользовательские Telegram-агенты**: заперты на один Telegram-ID, **без ролей и без разграничения прав**. Для офиса на 20 человек с разными правами они не подходят как основная платформа. **Вывод:** - **Офисная платформа** (20 чел., RBAC, документы) = **Nextcloud Assistant + Open WebUI поверх omniroute**. Это и есть ответ на «как у всех, удобно, с правами». - **Hermes оставляем для точечных силовых юзеров** — например, личный бот Мауля ([[projects/niikn/clawdbot-niikn|LXC 114]]) можно проапгрейдить clawdbot → Hermes, если ему нравится Telegram-формат. Это не противоречит офисному развёртыванию, а дополняет его. ## 4. Целевая архитектура (слои) ```mermaid flowchart TB subgraph users["Сотрудники НИИКН (~20)"] admin["Админ-отдел (6)
группа niikn-admin"] staff["Остальные (14)
группа niikn-staff"] end subgraph iface["Слой интерфейсов"] nc["Nextcloud Assistant
(VM108)
Smart Picker, резюме,
«спроси по этому файлу»"] owui["Open WebUI
(новый LXC на pve-niikn)
чат как Алиса/ChatGPT
+ базы знаний по отделам"] end subgraph rag["Слой знаний (RAG)"] cc["Context Chat backend
индекс по файлам NC
УВАЖАЕТ права на файлы"] col["Коллекции Open WebUI
по отделам"] emb["Локальный embedder
multilingual-e5 / bge-m3"] end subgraph engine["Слой движка"] omni["omniroute /v1
единая точка к моделям"] end subgraph models["Модели (облако через Max)"] opus["cc/claude-opus-4-8 (осн.)"] fb["fallback: sonnet-4-6 →
kr/sonnet-4.5 (free) → gpt"] end docs[("2.7 ТБ документов
SMB /mnt/ncsmb")] admin --> nc & owui staff --> nc & owui nc --> cc owui --> col cc --> emb col --> emb docs --> cc docs -.экспорт по отделам.-> col nc --> omni owui --> omni omni --> opus --> fb ``` **Ключевая идея:** один движок (omniroute) — две морды. omniroute = единственная точка управления моделями, ключами, лимитами и стоимостью. Меняем модель/фолбэк в одном месте — меняется везде. ### Слой 1 — движок (omniroute) - Все запросы идут в omniroute → `cc/claude-opus-4-8` (Max). - **Цепочка фолбэков обязательна** (см. §6 «Надёжность»): Opus → `cc/claude-sonnet-4-6` → `kr/claude-sonnet-4.5` (free) → `cx/gpt-5.5`. Чтобы при исчерпании Max-капа ассистент **деградировал, а не падал**. ### Слой 2 — знания (RAG) - **Nextcloud Context Chat** индексирует файлы пользователя и **автоматически уважает права на файлы**: сотрудник получает ответы только из тех документов, к которым у него есть доступ. Это и есть «разные права» — бесплатно, на уровне ACL Nextcloud. Главная фича против Алисы. - **Open WebUI коллекции** — базы знаний по отделам (например, отдельная коллекция «ГИКЭ» для админ-отдела). Привязываются к группам. - **Embeddings — единственная локально-тяжёлая часть** даже в облачном сценарии (Anthropic эмбеддинги не даёт). Берём многоязычный embedder (`multilingual-e5-large` / `bge-m3`) — критично для русского. Тут пригодится небольшой GPU (см. §6). ### Слой 3 — интерфейсы - **Nextcloud Assistant** (VM108): приложения `assistant` + `integration_openai`/`llm2` (провайдер → omniroute) + `context_chat`/`context_chat_backend`. Даёт: Smart Picker, свободный промпт, резюме, перевод, «спроси по этому файлу/папке». - **Open WebUI** (новый LXC на pve-niikn): замена Алисе. Multi-user, группы → доступ к моделям и коллекциям. ### Слой 4 — автоматизация (фаза 3+, опционально) - **swarmclaw** как back-office оркестратор: дайджесты новых документов, триаж/черновики почты, типовые рабочие процессы. Не морда для всех 20 — управляемый инструмент админ-отдела. ## 5. Модель прав (RBAC) | Группа | Кто | Nextcloud | Open WebUI | |---|---|---|---| | **niikn-admin** (6) | Мауль, Оксана Павловна + админ-отдел | Assistant + Context Chat по всем groupfolders | Opus 4.8 + коллекция «ГИКЭ/внутр. документы» | | **niikn-staff** (~14) | Остальные | Assistant + Context Chat по своим/общим папкам | Sonnet по умолчанию + общая коллекция | - В Nextcloud разграничение **из коробки**: Context Chat не покажет документ тому, у кого нет к нему прав. - В Open WebUI группы маппятся на «какие модели и какие коллекции видит юзер». - **SSO (OIDC)** через Nextcloud как IdP — фаза 2 (один логин на оба интерфейса). На пилоте 6 аккаунтов можно завести руками. ## 6. Надёжность («всё должно работать без сбоя») — это главный риск, разбираю отдельно | Риск | Почему | Митигация | |---|---|---| | **Max-кап (5ч) общий** | Сейчас один Max-аккаунт делят openclaw, German, swarmclaw, Open WebUI (дома). + 20 офисных юзеров в часы пик → `400 out of extra usage` гарантированно | **(1)** Цепочка фолбэков на бесплатные модели (деградация, не падение). **(2)** Рекомендую **отдельный биллинг для НИИКН**: или свой Max-seat, или Anthropic API-ключ с месячным бюджетом-капом. Без этого «без сбоя» не гарантировать | | **omniroute — SPOF** | Одна точка к моделям | systemd auto-restart (есть) + healthcheck + мониторинг в Zabbix (LXC 105 уже есть) | | **Egress в Anthropic через тоннель** | WAN НИИКН (MTS) блокирует много чего; трафик к Anthropic идёт через NetBird/Finland-bypass. Тоннель упал — ИИ молчит | Watchdog'и NetBird уже есть; добавить алерт «omniroute не отвечает» → Олегу через бота | | **Context Chat тяжёлый/капризный** | Python-бэкенд, индексация 2.7 ТБ / ~470k файлов — большая задача | **Не индексировать всё вслепую.** Скоупим корпус (нужные groupfolders, типы docx/pdf/xlsx), пилот на одной папке. Open WebUI остаётся доступным чатом, даже если индексация Context Chat отстаёт | | **Железо под embeddings** | 2.7 ТБ на CPU индексируются медленно | Небольшой GPU на pve-niikn кратно ускоряет индекс. Главная (и почти единственная) аппаратная инвестиция в облачном сценарии | ## 7. Сценарии использования (чем мы лучше Алисы) - «Найди в наших документах все экспертизы по объекту X за 2024» — Context Chat по groupfolders, **с учётом прав**. - «Сделай резюме этого 80-страничного заключения ГИКЭ». - «Составь черновик официального письма в Минкульт по нашему шаблону». - «Переформулируй/переведи этот раздел». - «Что требует этот регламент?» — общий чат с базой знаний. - Админ-отдел: дайджест новых документов, черновики типовой переписки (фаза 3). **Алиса** не видит документы НИИКН, не знает прав сотрудников, шлёт всё в Яндекс и не имеет корпоративной памяти. Наш ассистент — приватнее, знает документы, знает роли. ## 8. Дорожная карта - **Фаза 0 — подготовка (~1 неделя):** решить вопрос биллинга (отдельный Max/API для НИИКН); прописать цепочку фолбэков в omniroute; поднять Open WebUI LXC на pve-niikn; создать группы `niikn-admin`/`niikn-staff`; выбрать пилотный корпус (одна groupfolder). - **Фаза 1 — пилот (2–3 недели):** Open WebUI для админ-отдела (6 чел.) как замена Алисе + одна коллекция знаний; Nextcloud Assistant (Smart Picker, резюме, свободный промпт) для них же; Context Chat индексирует пилотный корпус. Сбор обратной связи. - **Фаза 2 — раскатка на всех 20:** обе морды, полный RBAC, расширение корпуса Context Chat, SSO (OIDC), коллекции по отделам. - **Фаза 3 — почта + автоматизация:** Mailcow → Nextcloud Mail + почтовые задачи ассистента (резюме/черновики); swarmclaw-автоматизации (дайджесты, триаж). - **Фаза 4 — продвинутое:** агентные сценарии, шаблоны, помощники вокруг 1С/КриптоАРМ, голосовой ввод. ## 9. Стоимость (порядок величин) - **Модели:** ~0 ₽ через Max — **при условии решения вопроса с капом** (отдельный seat ~$/мес или API с бюджетом). - **Железо:** существующий Proxmox + 1 новый LXC (Open WebUI, 2 vCPU / 2–4 ГБ) + RAM/диск под векторы. Опционально небольшой GPU под embeddings (главная инвестиция). - **Трудозатраты:** в основном конфиг — переиспользуем готовые домашние рецепты (Open WebUI deploy уже описан, omniroute работает). ## 10. Что нужно от Олега для старта 1. **Решение по биллингу** — отдельный Max/API-ключ для НИИКН или живём на общем капе + фолбэки? (влияет на «без сбоя»). 2. Подтвердить состав групп: кто именно 6 человек админ-отдела. 3. Выбрать пилотную groupfolder для первой индексации. 4. Есть ли возможность дать GPU на pve-niikn (или индексируем на CPU медленно). ## Навигация - [[projects/niikn/README]] — инфраструктура НИИКН - [[projects/niikn/clawdbot-niikn]] — бот Мауля (LXC 114) - [[decisions/2026-06-22-open-webui-deploy]] — рецепт Open WebUI (дом) - [[projects/niikn/groupfolders-migration]] — структура документов SMB