Штатик
Все кейсы

демо-система · Вымышленная компания «ТрансЛогистик», логистика · сборка демо: 1 день, 24.10.2026

Ассистент по регламентам: ответ с цитатой и страницей, «нет» — честно

Сотрудник спрашивает, ассистент отвечает только по документам компании и показывает дословную цитату со страницей.

ИИ · Внутренние системы

войти как — нажмите роль, демо откроется сразу

Спросите «Сколько стоит восстановить пропуск?», а потом «Какая погода завтра в Твери?» — на второй вопрос ассистент ответит, что в документах этого нет.

Документы, учётки и история возвращаются к исходным каждую ночь.

Ответ с цитатой, страницей и кнопкой «Открыть»

Задача

Типовой запрос из тендеров: ИИ-бот по регламентам, чтобы сотрудники не дёргали кадры и ИТ одними и теми же вопросами. Требования: отвечать только по документам, показывать, откуда взят ответ, ничего не выдумывать и держать данные у себя (152-ФЗ).

Что сделано

  • Ответ приходит с источником: документ, код, дословная цитата, страница PDF или раздел DOCX. Кнопка «Открыть» показывает документ сразу на нужной странице с подсвеченной цитатой.
  • Если ответа в документах нет, ассистент пишет об этом прямо и не показывает источников.
  • Администратор загружает, заменяет и удаляет документы. Новая версия сразу попадает в поиск, кэш ответов сбрасывается.
  • У каждого пользователя своя история. Администратор ведёт учётные записи и видит статистику вопросов.
  • Страница «Проверка качества»: 30 фиксированных вопросов, у 8 из них ответа в документах нет. Прогон по кнопке, отчёт сохраняется.
  • Корпус: 12 регламентов (7 PDF на 39 страниц и 5 DOCX), около 145 тыс. знаков.

Роли

  • Сотрудник — чат, своя история, просмотр документов, отчёт о качестве только для чтения
  • Администратор — плюс загрузка и замена документов, учётные записи, статистика, запуск проверки

Ключевой момент

Ответ модели не принимается на слово. Поиск находит до 8 фрагментов с номерами страниц, модель отвечает только по ним и ссылается на номера. Сервер проверяет, что каждая цитата дословно есть во фрагменте; если нет, вместо слов модели показывается ближайшее предложение из самого документа. Пользователь всегда видит текст регламента, а не пересказ.

Замеры

29 из 30верных ответов на контрольном наборе (цель — от 85 %). Единственный «провал» — вопрос о больничном: в двух регламентах указаны разные сроки, ассистент показал оба. Прогон 24.10.2026.
6,1 ссреднее время ответа (от 3,9 до 11,4 с) на том же наборе. Повторный вопрос отвечается из кэша сразу.
60 из 60шагов сквозной проверки в браузере: обе роли, сверка страниц и подсветки, замена и удаление версии, права, телефон и компьютер.

На демо-данных, методика указана в каждой строке. Реального клиента у демо нет, поэтому цифр «выручка выросла» здесь нет.

Скриншоты

Нажмите, чтобы увеличить. Листайте свайпом или стрелками.

История диалога и честное «в документах этого нет»
Отчёт проверки качества: разбор каждого из 30 вопросов
Документы с версиями, заменой и удалением
Статистика вопросов для администратора
Вход кнопкой роли
Чат на телефоне
Документ с подсвеченной цитатой на телефоне
Вход на телефоне

Стек и архитектура

  • Python 3.10
  • FastAPI
  • Jinja2
  • SQLite (в проде PostgreSQL)
  • pypdf, python-docx
  • BM25 с русским стеммингом
  • systemd, Caddy
  1. Загрузка: PDF разбирается по страницам, DOCX по разделам, фрагменты ложатся в базу.
  2. Вопрос: поиск BM25 возвращает 8 фрагментов.
  3. Модель получает только их и отвечает структурой «нашёл / ответ / источники с цитатами».
  4. Сервер сверяет цитаты, сохраняет ответ в историю и кэш.

Интеграции

В демо всё работает локально. В проде по задаче: вход через AD/LDAP или Keycloak, подтягивание документов из СЭД, Confluence или общей папки по расписанию, бот в Telegram, MAX или VK Teams поверх того же API.

Как было бы в проде

  • Модуль модели заменяемый. У заказчика ставлю YandexGPT, GigaChat или локальную модель на его сервере, и документы не покидают контур. Claude работает только в демо, на вымышленных документах.
  • Расход на 3 000 вопросов в месяц — около 9,5 млн токенов (замер длины запроса на контрольном наборе). Расчёт по тарифам российских моделей показываю при разборе.
  • Свой набор контрольных вопросов заказчика (30–50 штук) и прогон до 85 % верных — до запуска для всех.
  • Срок внедрения ассистента на базе знаний — 1–2 недели.

Сроки по факту

Сборка демо: 1 день, 24.10.2026. Код пишу вместе с ИИ-агентами, проверка — автоматическая, в браузере на сервере. Сроки проекта у заказчика — в последнем пункте «Как было бы в проде» и в разделе «Процесс и сроки».

Попробовать

войти как — нажмите роль, демо откроется сразу

Спросите «Сколько стоит восстановить пропуск?», а потом «Какая погода завтра в Твери?» — на второй вопрос ассистент ответит, что в документах этого нет.

Документы, учётки и история возвращаются к исходным каждую ночь.

Обсудить задачу

Нужна такая система под вашу задачу? Напишите, что болит, — разберу и покажу прототип на ваших данных до договора. Как я работаю и как оплачивать — на странице портфолио.

почта, если Telegram не открывается

anton.shtatik@yandex.ru

Отвечаю в течение рабочего дня.