---
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)<br/>группа niikn-admin"]
        staff["Остальные (14)<br/>группа niikn-staff"]
    end

    subgraph iface["Слой интерфейсов"]
        nc["Nextcloud Assistant<br/>(VM108)<br/>Smart Picker, резюме,<br/>«спроси по этому файлу»"]
        owui["Open WebUI<br/>(новый LXC на pve-niikn)<br/>чат как Алиса/ChatGPT<br/>+ базы знаний по отделам"]
    end

    subgraph rag["Слой знаний (RAG)"]
        cc["Context Chat backend<br/>индекс по файлам NC<br/>УВАЖАЕТ права на файлы"]
        col["Коллекции Open WebUI<br/>по отделам"]
        emb["Локальный embedder<br/>multilingual-e5 / bge-m3"]
    end

    subgraph engine["Слой движка"]
        omni["omniroute /v1<br/>единая точка к моделям"]
    end

    subgraph models["Модели (облако через Max)"]
        opus["cc/claude-opus-4-8 (осн.)"]
        fb["fallback: sonnet-4-6 →<br/>kr/sonnet-4.5 (free) → gpt"]
    end

    docs[("2.7 ТБ документов<br/>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
