Т1 Компас
← Назад
Техническое описание · пилот

Как «Компас» будет устроен на самом деле

Текущая версия на compas.izzzy.fun — статический прототип для проверки сценариев: весь «ум» ассистента там захардкожен по ключевым словам. Этот документ описывает, во что это превращается при переходе к боевой реализации: стек, где живёт логика, как подключаются 1С/SAP/справочники и что уже можно строить не дожидаясь интеграций.

Обновлено 10.09.2026 · статус: стек согласован, разработка бэкенда не начата

Стек

Фронтенд
React + Vite + Ant Design — тот же чат-интерфейс, что в прототипе, но данные приходят с бэка, а не из захардкоженных строк
Бэкенд
NestJS (TypeScript) — модульная архитектура, один модуль-«коннектор» на внешнюю систему
База данных
PostgreSQL + Prisma ORM — сессии, история чата, кеш ответов интеграций
Распознавание команд
сейчас — сторонний сервис VseGPT (OpenAI-совместимый LLM-прокси, уже развёрнут на сервере для izzzy); в перспективе — внутренняя LLM-инфраструктура Т1 на базе Qwen (уже развёрнута и не требует выхода за периметр), см. ниже
Хостинг
тот же сервер, что и текущий прототип — Docker Compose, Caddy как реверс-прокси

Распознавание запроса

Точные команды (клик по чипу, «отпуск», «зарплата») обрабатываются мгновенно локальным роутером — без сетевого вызова, без задержки. Для свободного текста, где нужно и понять намерение, и вытащить параметры (даты, суммы, имена) из фразы вида «хочу в отпуск с 5 по 20, но проверь пересечение с релизом», на старте пилота используется сторонний сервис — VseGPT (function calling поверх LLM). Это осознанно временное решение: он уже есть на сервере, интегрируется быстро и не требует писать свой NLU с нуля к запуску пилота.

Фронт
React-чат отправляет сообщение на один эндпоинт NestJS
→
Локальный роутер
Точное совпадение с известной командой? → сразу к коннектору, без внешнего сервиса
→
VseGPT (сторонний, временно)
Свободный текст → function calling выбирает tool и извлекает аргументы
→
Коннектор
Модуль NestJS переводит вызов в запрос к 1С / SAP / LDAP и т.д.
→
Ответ
Структурированные данные → фронт рендерит ту же карточку, что и в прототипе
Почему временно, и что дальше

Набор сценариев конечен и известен заранее — это не открытый диалог общего назначения, а фиксированный список из нескольких десятков операций. Как только словарь ключевых фраз и синонимов на каждый сценарий будет накоплен (в том числе по реальным логам обращений к VseGPT — какие формулировки реально используют люди), распознавание свободного текста можно перевести на внутреннюю LLM-платформу Т1 на базе Qwen: без внешнего сервиса, без стоимости за запрос к стороннему API и без риска, что данные уйдут за периметр компании. VseGPT на этом этапе — способ быстрее показать рабочий пилот, а не финальная архитектура; целевое решение уже есть внутри контура, дело за переносом.

Сценарии → системы

Каждая функция showX() в прототипе — это будущий tool. Ниже — куда он реально стучится и в каком состоянии сейчас.

СценарийСистемаСтатус
Отпуск, остаток дней, пересечения1С:ЗУП / HR-системаплан
Зарплата, 2-НДФЛ, справки1С:ЗУПплан
БольничныйЭнва.Сервисыплан
Командировка + бюджет отдела1С:Бюджетированиеплан
ДМС, клиникиСтраховой провайдер (API/выгрузка)мок
Бронирование переговорных / местExchange / корп. календарьплан
Задачи (доска)Сфера.Задачимок
Мой проектОксимок
Моя команда, утилизацияСфера.Задачи + HRмок
Поиск контактовLDAP / Active Directoryплан
Пропуск гостюСКУДплан
База знаний, новости, событияКорп. портал (переход по ссылке)не требует интеграции
Техническая база знанийConfluenceмок
Задачи разработкиJIRAплан
Слайды, презентацииСлайдотекамок
Рекрутмент, кандидаты, вакансииСистема рекрутмента Т1план
Общение с командой, уведомления (уже в агентном режиме)Dionмок

Что дальше

  1. Каркас бэкендаNestJS-проект, схема Prisma, модуль чата с локальным роутером точных команд и подключением VseGPT для свободного текста — без реальных интеграций, ответы коннекторов пока моками с той же структурой данных, что и в прототипе.
  2. Фронтенд на ReactПеренос UI из статического прототипа на компоненты AntD, чат подключается к реальному чат-эндпоинту вместо route().
  3. Первая боевая интеграцияОдин реальный коннектор (кандидат — 1С:ЗУП для зарплаты/отпуска или Сфера.Задачи) — чтобы проверить паттерн на живых данных до массового подключения остальных систем.
  4. Остальные коннекторыПо мере готовности доступов — SAP, LDAP, СКУД, страховой провайдер.
  5. Переход на локальное распознаваниеКогда накопится словарь реальных формулировок из логов VseGPT — заменить внешний сервис на внутреннюю LLM-платформу Т1 (Qwen) и отказаться от стороннего API.
А как это будет разрабатываться внутри периметра

Прототип и вся текущая работа — за периметром компании, с внешним AI-инструментом для разработки (Claude Code), это и обеспечивает скорость итераций, которую вы видите. Когда работа дойдёт до реальных коннекторов к 1С/СКУД/LDAP — эта часть кода пишется уже внутри контура Т1, без доступа к внешним AI-сервисам. Здесь как раз пригождается внутренняя Qwen-платформа: с открытым агентом разработки поверх неё «последняя миля» интеграций делается локально, не дожидаясь отдельного согласования доступа к внешним AI-инструментам для команды.

Важно

Разработка бэкенда/фронтенда по этому плану официально не начата — по решению заказчика пилот сейчас существует только как интерактивный прототип для проверки UX-сценариев. Этот документ фиксирует договорённость по архитектуре, чтобы не терять контекст между итерациями макета.