Files
knowledge-base/projects/niikn/ai-assistant-concept.md
dttb 4010fbd235 Homepage: перенос на 10.0.0.148 — был конфликт IP на .145 (502/refused)
.145 оказался занят чужим устройством (MAC ac:ba:c0:39:82:64): pve резолвил в контейнер,
а NPM и NetBird-клиенты — в чужого → 502 на dash.dttb.ru. Перенесли на свободный .148
(проверено ARP), NPM forward_host обновлён, HOMEPAGE_ALLOWED_HOSTS поправлен.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-27 00:32:48 +03:00

16 KiB
Raw Blame History

type, status, tags, aliases, created
type status tags aliases created
project draft
niikn
ai
assistant
nextcloud
open-webui
omniroute
concept
AI-ассистент НИИКН
ИИ для сотрудников НИИКН
NIIKN AI assistant
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) можно проапгрейдить clawdbot → Hermes, если ему нравится Telegram-формат. Это не противоречит офисному развёртыванию, а дополняет его.

4. Целевая архитектура (слои)

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-6kr/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 — пилот (23 недели): 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 / 24 ГБ) + RAM/диск под векторы. Опционально небольшой GPU под embeddings (главная инвестиция).
  • Трудозатраты: в основном конфиг — переиспользуем готовые домашние рецепты (Open WebUI deploy уже описан, omniroute работает).

10. Что нужно от Олега для старта

  1. Решение по биллингу — отдельный Max/API-ключ для НИИКН или живём на общем капе + фолбэки? (влияет на «без сбоя»).
  2. Подтвердить состав групп: кто именно 6 человек админ-отдела.
  3. Выбрать пилотную groupfolder для первой индексации.
  4. Есть ли возможность дать GPU на pve-niikn (или индексируем на CPU медленно).

Навигация