Коммерческое предложение + ТЗ: Модуль интеллектуальной сверки характеристик
Нейросетевая автоматизация проверки паспорта товара на соответствие области аккредитации лаборатории
Версия: 2.0 Дата: 20 марта 2026 Клиент: ГК СЕРКОНС Подготовил: AiDevTeam
Содержание
Часть I: Коммерческое предложение
- О проекте
- Текущие процессы и боли
- Архитектура решения
- Варианты соблюдения 152-ФЗ
- Пакеты услуг
- Сравнение пакетов
- Ядро системы
- Дополнительные опции
- Матрица цен и конфигурации
- Наша рекомендация
- Бизнес-выгоды (ROI)
Часть II: Техническое задание
- Границы MVP
- Компоненты системы
- Диаграмма потоков данных
- Диаграмма последовательности
- Диаграмма скученности связей
- Модель данных
- API-спецификация
- Пользовательские сценарии
- Модель угроз (STRIDE)
- План реагирования на инциденты
- Команда проекта
- Дорожная карта
- Предварительные исследования
- Стратегия тестирования
- Развёртывание и инфраструктура
- Критерии приёмки
- Нефункциональные требования
Часть III: Коммерческие условия
- Как мы работаем
- Условия оплаты
- Ежемесячные расходы
- Риски и митигация
- Гарантии
- Требования к клиенту
- Что не входит
- Открытые вопросы
- Перспективы развития
- Глоссарий
- Следующие шаги
Главное
Этот раздел -- краткая выжимка для принятия решения. Детали -- в разделах ниже.
Ситуация
ГК СЕРКОНС объединяет 6 испытательных лабораторий, аккредитованных по ТР ТС 004/020/037. Ежедневно эксперты вручную сверяют паспорта товаров с областями аккредитации -- это 50 000+ страниц документов и 2 025 стандартов. Автоматизация этого процесса высвободит экспертов для задач, где их квалификация действительно необходима.
Что вы получите
| # | Результат | Эффект |
|---|---|---|
| 1 | Автоматическая сверка за <30 сек | Вместо 40 минут ручной проверки -- экспертное заключение с визуальными доказательствами |
| 2 | Детерминированная математика | Ноль ошибок в единицах измерения и расчёте TUR 4:1 -- LLM не считает, считает калькулятор |
| 3 | Обнаружение скрытых стандартов | Детектор находит +21 стандарт ЭМС, которые эксперт мог пропустить (Wi-Fi, BT, NFC) |
| 4 | Ресурсная карта 6 лабораторий | При несоответствии одной лаборатории система находит подходящую из остальных |
Три пакета -- одна платформа
Мы предлагаем три прогрессивных пакета. Каждый включает ядро системы и всё из предыдущего. Стандарт даёт базовую сверку с VLM и калькулятором за 6--7 недель. Бизнес добавляет рекурсивный пайплайн ГОСТов, кэширование и webhook в ERP. Enterprise -- fine-tuning моделей, ресурсную карту и SLA.
Дополнительно вы выбираете инфраструктурный вариант по соблюдению 152-ФЗ -- от полного On-Premise в РФ до облака без ограничений.
Инвестиция
| Пакет | C: Облако | B: + Анонимизация | A: On-Premise РФ | Срок |
|---|---|---|---|---|
| Стандарт | 980 000 | 1 215 000 | 1 465 000 | 6--7 нед |
| Бизнес | 1 360 000 | 1 595 000 | 1 845 000 | 9--10 нед |
| Enterprise | 1 785 000 | 2 020 000 | 2 270 000 | 12--14 нед |
Наша рекомендация: Бизнес + Вариант B (облако с анонимизацией) -- оптимальный баланс качества моделей, соблюдения 152-ФЗ и стоимости. 1 595 000 руб, 11--12 недель.
Почему AiDevTeam
- Метрология, а не чат-бот. Пайплайн, где LLM никогда не считает -- вычисления делает калькулятор Pint v0.25.2 с международным стандартом TUR 4:1
- 66+ источников исследований. 4 Deep Research по VLM, RLM, compliance automation и российским PDF -- каждый выбор обоснован
- Прозрачная калькуляция. Ставка, часы и стоимость каждой роли -- никаких «от» и «приблизительно»
- Три варианта 152-ФЗ. Вы сами выбираете баланс между compliance, качеством моделей и бюджетом
Как читать этот документ
| Аудитория | Разделы | Что узнаете |
|---|---|---|
| Руководство | Главное, 1--2, 5--6, 9--11 | Пакеты, цены, ROI, рекомендация |
| Технические специалисты | 3--4, 12--21 | Архитектура, диаграммы, модель угроз, API |
| Юристы / Закупки | 4, 29--35 | 152-ФЗ, оплата, гарантии, SLA |
1. О проекте
Модуль интеллектуальной сверки характеристик -- нейросетевая система автоматической проверки паспорта товара на соответствие области аккредитации испытательной лаборатории.
Заказчик: ГК СЕРКОНС -- 6 испытательных лабораторий, аккредитованных по ТР ТС 004 (низковольтное оборудование), ТР ТС 020 (электромагнитная совместимость), ТР ТС 037 (ограничение опасных веществ).
Масштаб задачи:
| Параметр | Значение |
|---|---|
| Страниц ОА ИЛ | 50 000+ |
| Стандартов | 2 025 |
| Лабораторий | 6 |
| Технических регламентов | ТР ТС 004, 020, 037 |
| База ГОСТов | ТЕХЭКСПЕРТ |
Ключевая технология: Гибрид VLM (Vision Language Model) + RLM (Reasoning Language Model). VLM «видит» документ как изображение и сохраняет структуру таблиц. RLM строит цепочку рассуждений по графу ГОСТов. Математику выполняет детерминированный калькулятор -- LLM не считает.
2. Текущие процессы и боли
| Проблема | Влияние | Решение |
|---|---|---|
| Ручная сверка 30--40 мин на документ | 60%+ времени эксперта на рутину | Автосверка за <30 сек с bounding boxes |
| Ошибки пересчёта единиц (мкм/мм, кВ/В) | Некорректный вердикт | Калькулятор Pint v0.25.2, LLM не участвует |
| Скрытые стандарты ЭМС не замечаются | Товар с Wi-Fi/BT требует +21 стандарт | 3-уровневый детектор: regex, ML, LLM |
| Гомоглифы (О/O/0, Р/P, С/C) | Одна буква меняет весь стандарт | Unicode-нормализация + валидация по ТЕХЭКСПЕРТ |
| Рекурсивные ссылки между ГОСТами | Эксперт теряет цепочку ссылок | LangGraph (3 уровня, recursion_limit=5) |
| Разные форматы (PDF, скан, Word, Excel) | Таблицы «съезжаются» при парсинге | VLM видит документ как изображение |
| Версионирование ОА (Акк/Расш/Сокр) | Сокращение отменяет данные Аккредитации | Логика приоритетов с учётом дат |
3. Архитектура решения
3.1. Общая схема
flowchart TB
subgraph Input["Входные данные"]
DOC["Документы\nPDF / фото / Word"]
OA["Область\nаккредитации"]
GOST["ТЕХЭКСПЕРТ\nБаза ГОСТов"]
end
subgraph Ingestion["Ingestion Layer"]
PARSE["Document Parser\nPyMuPDF4LLM"]
OCR["VLM OCR\nPaddleOCR-VL"]
NER["NER Anonymizer\nSpaCy + Presidio"]
end
subgraph Core["Reasoning Core"]
LG["LangGraph\nOrchestrator"]
CALC["Pint Calculator\nTUR 4:1"]
DET["Detector\nRegex+ML+LLM"]
REC["GOST Recursion\n3 уровня"]
end
subgraph Output["Результаты"]
ERP["ERP 1С\nWebhook"]
BBOX["Bounding Boxes\nVisual Grounding"]
TREE["Decision Tree\nExplainable AI"]
end
DOC --> PARSE
OA --> PARSE
GOST --> REC
PARSE --> OCR
OCR --> NER
NER --> LG
LG --> CALC
LG --> DET
LG --> REC
REC --> LG
LG --> ERP
LG --> BBOX
LG --> TREE
style Input fill:#172554,stroke:#3b82f6
style Ingestion fill:#14532d,stroke:#22c55e
style Core fill:#78350f,stroke:#f59e0b
style Output fill:#3b0764,stroke:#a855f7
5 этапов обработки:
- Ingestion -- парсинг всех форматов (PyMuPDF4LLM), OCR фотокопий (PaddleOCR-VL 0.9B), опционально NER-анонимизация (ruRoBERTa 355M)
- VLM Processing -- извлечение структурированных данных из таблиц с bounding boxes (Qwen2.5-VL 7B)
- RLM Orchestration -- граф LangGraph 1.1 маршрутизирует: калькулятор, детектор, рекурсия ГОСТов
- Verification -- детерминированная проверка единиц (Pint), точности (TUR 4:1), скрытых ограничений
- Output -- JSON в ERP (1С) через webhook + визуальные доказательства (bounding boxes)
Принципы:
- LLM не считает -- вызывает калькулятор через Tool-Calling
- Секретные данные -- только локально (вариант A) или через NER-анонимизацию (вариант B)
- Неоднозначность → эскалация на эксперта, не ИИ
3.2. Технологический стек
| Технология | Версия | Роль |
|---|---|---|
| LangGraph | 1.1.0 | Оркестрация графа |
| FastAPI | 0.115+ | API Gateway |
| PaddleOCR-VL | 0.9B | VLM OCR |
| Qwen2.5-VL | 7B | Bounding Boxes |
| Pint | 0.25.2 | Метрология |
| SpaCy ru_core_news_lg | 3.8 | NER (F1=0.83) + Presidio |
| GPT-5 Mini | latest | Reasoning (B/C) |
| Claude Sonnet | 4.6 | Эскалация |
| PostgreSQL | 17 | БД + pgvector |
| Redis | 7.x | Кэш |
| Celery | 5.4+ | Async-очередь |
| Langfuse | 3.x | Мониторинг |
4. Варианты соблюдения 152-ФЗ
Персональные данные в паспортах товаров (контакты производителя, номера сертификатов) подпадают под 152-ФЗ «О персональных данных». Мы предлагаем три варианта инфраструктуры с разным балансом compliance, стоимости и качества.
4.1. Сравнение вариантов
| Параметр | C: Облако | B: Облако + NER | A: On-Premise РФ |
|---|---|---|---|
| 152-ФЗ | Нет | Частичное (приказ РКН N 140) | Полное |
| Качество моделей | Максимальное | Высокое | Хорошее (open-source) |
| Доступные LLM | GPT-5, Claude, Gemini | GPT-5, Claude (через NER) | Qwen2.5-VL, Saiga |
| NER-модель | -- | SpaCy ru (F1=0.83) + Regex | -- |
| Надбавка | Базовая цена | +235 000 руб | +485 000 руб |
| Доп. срок | -- | +2 недели | +3--4 недели |
| Расходы/мес | 15--25 тыс (API) | 20--30 тыс | 5--10 тыс (электричество) |
| Масштабирование | Неограниченное | Неограниченное | Ограничено GPU |
| Латентность (p95) | <3 сек | <5 сек | <10 сек |
| Уровень защиты ПД | Базовый | Высокий | Максимальный |
4.2. Вариант C -- Облако без ограничений
Все компоненты работают через облачные API (OpenAI, Anthropic, Google). Максимальное качество моделей, минимальная стоимость разработки.
Когда подходит: В документах нет персональных данных, подпадающих под 152-ФЗ, или данные уже обезличены на стороне заказчика.
4.3. Вариант B -- Облако + NER-анонимизация
Перед отправкой в облачные LLM данные проходят через гибридный NER-анонимизатор. ФИО, ИНН, контакты, номера сертификатов заменяются на псевдонимы (Faker ru_RU). Результат де-анонимизируется перед записью в ERP.
Стек анонимизации (по результатам DR5):
| Компонент | Технология | Метрика |
|---|---|---|
| NER-модель | SpaCy ru_core_news_lg |
F1=0.83, Precision=0.84, Recall=0.81 |
| Regex-детектор | Custom (ИНН, ОГРН, сертификаты) | 100% на структурированных ПД |
| Фреймворк | Microsoft Presidio | Open-source, Docker-ready |
| Замена | Faker (ru_RU) | Сохраняет контекст для LLM |
| Mapping | Redis (TTL 24h) | Быстрая де-анонимизация |
Пайплайн:
Документ → SpaCy NER + Regex → Presidio Anonymizer → Faker замена → Облачная LLM → Reverse Mapping → ERP
Юридическое обоснование: Метод «введение идентификаторов» (псевдонимизация) соответствует приказу Роскомнадзора N 140 от 19.06.2025, вступившему в силу 01.09.2025. Таблица соответствия хранится в Redis внутри контура и не передаётся в облако.
Когда подходит: Нужен доступ к лучшим моделям, но данные содержат ПД. Компромисс качество/compliance.
4.4. Вариант A -- On-Premise в РФ
Полный стек на GPU-серверах заказчика внутри контура РФ. Только open-source модели: PaddleOCR-VL, Qwen2.5-VL, Saiga/Vikhr.
Требования к оборудованию:
| Компонент | Минимум | Рекомендация |
|---|---|---|
| GPU | NVIDIA A10 (24 GB) | NVIDIA A100 (80 GB) |
| RAM | 64 GB | 128 GB |
| SSD | 500 GB NVMe | 1 TB NVMe |
| CPU | 16 ядер | 32 ядра |
Когда подходит: Строгие требования 152-ФЗ, данные не покидают контур. Готовность инвестировать в GPU.
5. Пакеты услуг
Каждый пакет включает ядро системы (раздел 7) и всё из предыдущего пакета. Цены указаны для варианта C (облако). Надбавки за инфраструктурный вариант B/A -- в разделе 9.
5.1. Стандарт -- Базовая сверка
Работающий продукт: загрузка документа → автоматическая сверка → результат в ERP.
| # | Модуль | Описание | Критерий приёмки |
|---|---|---|---|
| Я1--Я9 | Ядро системы | Полное ядро (см. раздел 7) | Все критерии ядра выполнены |
| С1 | Парсинг всех форматов | PDF, фото, Word, Excel → структура | 95%+ документов парсятся без ошибок |
| С2 | VLM OCR | PaddleOCR-VL + Qwen2.5-VL | Точность >= 94% (OmniDocBench) |
| С3 | Калькулятор единиц | Pint v0.25.2, пересчёт 150+ единиц | 100% детерминированных вычислений |
| С4 | Анализ точности TUR 4:1 | Международный метрологический стандарт | PASS/FAIL с обоснованием |
| С5 | Детектор ограничений (Tier 1) | Regex + таксономия технологий | Обнаружение Wi-Fi, BT, NFC, Zigbee |
| С6 | Bounding Boxes | Подсветка спорных значений в документе | Визуальные доказательства для эксперта |
| С7 | JSON в ERP | Webhook + структурированный результат | Интеграция с 1С за <= 5 сек |
Стоимость (вариант C): 980 000 руб Срок: 6--7 недель | Часы: 209 ч
5.2. Бизнес -- Рекурсивный пайплайн
Включает всё из «Стандарт» +
| # | Модуль | Описание | Критерий приёмки |
|---|---|---|---|
| Б1 | Автопарсер ГОСТов | Локальная PostgreSQL + pgvector + импорт из ТЕХЭКСПЕРТ (DR6) | Автозагрузка стандартов, полнотекстовый + семантический поиск |
| Б2 | Рекурсивный пайплайн | LangGraph, 3 уровня ГОСТов | Корректная обработка цепочек ссылок |
| Б3 | Гибридный LLM | Облако (reasoning) + локальный (NER) | Автоматический роутинг по типу задачи |
| Б4 | Версионирование ОА | Акк / Расш / Сокр с приоритетами | Корректный учёт дат и типов документов |
| Б5 | Детектор (Tier 2--3) | ML-классификатор + LLM | F1 >= 0.90 на тестовом наборе |
| Б6 | Redis-кэш | Повторные запросы < 10 сек | Cache hit rate >= 60% |
| Б7 | Webhook в ERP | Push-уведомления + async-очередь | Доставка за <= 3 сек, retry при ошибке |
| Б8 | Полный набор тестов | Unit + integration + e2e | Покрытие >= 80% |
Стоимость (вариант C): 1 360 000 руб Срок: 9--10 недель | Часы: 286 ч
Бонусы (бесплатно):
- Миграция существующих справочников ГОСТов из Excel в систему (обычно ~50 000 руб)
- Настройка Langfuse-мониторинга с 3 дашбордами (обычно ~35 000 руб)
Общая стоимость бонусов: ~85 000 руб
5.3. Enterprise -- Fine-Tuning + SLA
Включает всё из «Бизнес» +
| # | Модуль | Описание | Критерий приёмки |
|---|---|---|---|
| Е1 | Fine-Tuning | Дообучение моделей под ТР ТС 004/020/037 | Прирост точности >= 5 п.п. на тестовом наборе |
| Е2 | Ресурсная карта | 6 лабораторий ГК, автоподбор | При FAIL лаборатории -- альтернатива за < 5 сек |
| Е3 | Explainable AI | Интерактивное дерево решений | Визуальная цепочка: товар → требование → вердикт |
| Е4 | Pre-filter | Быстрый текстовый классификатор | Экономия 60--80% GPU на простых случаях |
| Е5 | SLA и поддержка | Техподдержка 8/5, SLA 99% uptime | Реакция <= 4 часа, восстановление <= 24 часа |
Стоимость (вариант C): 1 785 000 руб Срок: 12--14 недель | Часы: 377 ч
Бонусы (бесплатно):
- Всё из «Бизнес» +
- Обучение 5 экспертов работе с системой (обычно ~60 000 руб)
- 2 кастомных отчёта по шаблону заказчика (обычно ~45 000 руб)
- Бонус на будущую разработку: 150 000 руб на доработки и новые модули
Общая стоимость бонусов: ~340 000 руб (бонусы ~190 000 руб + бонус на разработку 150 000 руб)
Условия бонуса на разработку:
- Действует 12 месяцев с момента запуска
- Покрывает не более 50% от суммы нового заказа
- Применяется к: новые модули, интеграции, кастомизации, расширения
6. Сравнение пакетов
| Возможность | Стандарт | Бизнес | Enterprise |
|---|---|---|---|
| Docker + CI/CD + FastAPI | V | V | V |
| Парсинг всех форматов | V | V | V |
| VLM OCR + Bounding Boxes | V | V | V |
| Калькулятор единиц (Pint) | V | V | V |
| Анализ точности TUR 4:1 | V | V | V |
| Детектор Tier 1 (regex) | V | V | V |
| JSON в ERP (1С) | V | V | V |
| Автопарсер ТЕХЭКСПЕРТ | -- | V | V |
| Рекурсивный пайплайн (3 ур.) | -- | V | V |
| Гибридный LLM | -- | V | V |
| Версионирование ОА | -- | V | V |
| Детектор Tier 2--3 (ML+LLM) | -- | V | V |
| Redis-кэш (<10 сек) | -- | V | V |
| Webhook + async-очередь | -- | V | V |
| Полный набор тестов (80%+) | -- | V | V |
| Fine-Tuning под ТР ТС | -- | -- | V |
| Ресурсная карта (6 лаб.) | -- | -- | V |
| Explainable AI (дерево решений) | -- | -- | V |
| Pre-filter (экономия GPU) | -- | -- | V |
| SLA 99% + поддержка 8/5 | -- | -- | V |
| Цена (вариант C) | 980 000 | 1 360 000 | 1 785 000 |
| Срок | 6--7 нед | 9--10 нед | 12--14 нед |
7. Ядро системы
Ядро -- фундамент, который входит в каждый пакет. Без него система не работает.
| # | Компонент | Описание |
|---|---|---|
| Я1 | Инфраструктура | Docker, CI/CD, FastAPI, PostgreSQL 17 |
| Я2 | Document Ingestion | Единый интерфейс парсинга всех форматов |
| Я3 | VLM Processor | OCR + извлечение структуры таблиц |
| Я4 | RLM Orchestrator | Граф LangGraph 1.1 StateGraph |
| Я5 | Калькулятор | Pint v0.25.2 + ГОСТ-маппинг единиц |
| Я6 | Анализатор точности | TUR 4:1, метрологический стандарт |
| Я7 | Базовый детектор | Regex-паттерны + таксономия технологий |
| Я8 | ERP-интеграция | JSON-результат через REST API |
| Я9 | Мониторинг | Langfuse + логирование решений |
8. Дополнительные опции
Независимые модули -- можно добавить к любому пакету.
| # | Опция | Что даёт | Часы | Стоимость |
|---|---|---|---|---|
| О1 | Telegram-бот для экспертов | Push-уведомления о результатах сверки в реальном времени | 45 ч | 195 000 |
| О2 | Дашборд аналитики | Статистика сверок, тренды, bottleneck-анализ (Grafana) | 55 ч | 235 000 |
| О3 | Мультитенантность | Отдельные настройки, пороги и модели для каждой лаборатории | 65 ч | 280 000 |
| О4 | Автообновление ГОСТов | Scraper ТЕХЭКСПЕРТ + версионирование + уведомления об изменениях | 50 ч | 215 000 |
| О5 | Обучающий модуль | Пользовательская документация + 5 видеогайдов + FAQ-бот | 35 ч | 150 000 |
Расчёт стоимости опций: Часы x средневзвешенная ставка команды. Маржинальность опций соответствует маржинальности пакетов.
9. Матрица цен и конфигурации
Итоговая цена = Пакет + Инфраструктурный вариант + Опции (по выбору).
9.1. Базовые пакеты + инфраструктура
| C: Облако | B: + Анонимизация | A: On-Premise РФ | |
|---|---|---|---|
| Стандарт | 980 000 | 1 215 000 | 1 465 000 |
| Бизнес | 1 360 000 | 1 595 000 | 1 845 000 |
| Enterprise | 1 785 000 | 2 020 000 | 2 270 000 |
9.2. Что входит в надбавку за инфраструктуру
Вариант B (+235 000 руб):
- Разработка NER-анонимизатора (SpaCy + Presidio)
- Пайплайн анонимизации/де-анонимизации
- Тестирование качества анонимизации (precision/recall)
- Дополнительно: +52 часа, +2 недели к сроку
Вариант A (+485 000 руб):
- Развёртывание GPU-инфраструктуры на серверах заказчика
- Настройка Docker/K8s для on-premise
- Замена облачных API на open-source модели (Qwen2.5-VL, Saiga)
- Оптимизация inference (quantization, batching)
- Нагрузочное тестирование на целевом оборудовании
- Дополнительно: +103 часа, +3--4 недели к сроку
9.3. Примеры конфигураций
| Конфигурация | Состав | Срок | Цена |
|---|---|---|---|
| Минимум | Стандарт + C | 6--7 нед | 980 000 |
| Оптимум | Бизнес + B | 11--12 нед | 1 595 000 |
| Оптимум + аналитика | Бизнес + B + О2 | 12--13 нед | 1 830 000 |
| Максимум | Enterprise + A | 16--18 нед | 2 270 000 |
| Максимум + всё | Enterprise + A + О1--О5 | 20--22 нед | 3 345 000 |
10. Наша рекомендация
Для вашей ситуации мы рекомендуем Бизнес + Вариант B (облако с анонимизацией):
- Рекурсивный пайплайн -- при 2 025 стандартах и рекурсивных ссылках между ГОСТами базовый Стандарт будет пропускать цепочки зависимостей
- Автопарсер ТЕХЭКСПЕРТ -- ручной импорт ГОСТов при вашем объёме нереалистичен
- Анонимизация (вариант B) -- доступ к GPT-5 и Claude для reasoning, при этом ПД не покидают контур в открытом виде
- Webhook + кэш -- при 50 000+ страниц ОА критична скорость и надёжность доставки результатов в ERP
Стоимость: 1 595 000 руб | Срок: 11--12 недель
Если бюджет позволяет -- рассмотрите добавление опции О2 (Дашборд аналитики, +235 000 руб). При 6 лабораториях аналитика bottleneck-ов окупится за 2--3 месяца.
11. Бизнес-выгоды (ROI)
| # | Выгода | Описание |
|---|---|---|
| 1 | Экономия времени экспертов | 40 мин → 30 сек на сверку. При 20 сверках/день = 13 часов/день экономии на 6 лабораторий. ~260 000 руб/мес экономии на ФОТ |
| 2 | Снижение риска аккредитации | Детерминированная математика + детектор скрытых стандартов исключают ошибки, стоящие миллионы при потере аккредитации |
| 3 | Ресурсная карта | При FAIL одной лаборатории система находит альтернативу из 5 остальных -- клиент не уходит, а перенаправляется |
| 4 | Масштабируемость | Платформа обрабатывает любой объём без найма дополнительных экспертов |
| 5 | Explainable AI | Прозрачная цепочка решений для аудита и сертификации -- каждый вердикт обоснован |
Окупаемость: При экономии ~260 000 руб/мес пакет «Бизнес + B» (1 595 000 руб) окупается за 6--7 месяцев.
Часть II: Техническое задание
12. Границы MVP
flowchart TB
subgraph core["Ядро (Я1--Я9)"]
Y1["Я1 Инфра"]
Y2["Я2 Ingestion"]
Y3["Я3 VLM"]
Y4["Я4 RLM"]
Y5["Я5 Калькулятор"]
Y6["Я6 TUR"]
Y7["Я7 Детектор"]
Y8["Я8 ERP"]
Y9["Я9 Мониторинг"]
end
subgraph standard["Стандарт (С1--С7)"]
S1["С1 Форматы"]
S2["С2 VLM OCR"]
S3["С3 Pint"]
S4["С4 TUR 4:1"]
S5["С5 Детектор T1"]
S6["С6 Bbox"]
S7["С7 JSON ERP"]
end
subgraph business["Бизнес (Б1--Б8)"]
B1["Б1 ТЕХЭКСПЕРТ"]
B2["Б2 Рекурсия"]
B3["Б3 Гибрид LLM"]
B4["Б4 Версион. ОА"]
B5["Б5 Детектор T2-3"]
B6["Б6 Кэш"]
B7["Б7 Webhook"]
B8["Б8 Тесты"]
end
subgraph enterprise["Enterprise (Е1--Е5)"]
E1["Е1 Fine-Tune"]
E2["Е2 Рес. карта"]
E3["Е3 Explainable"]
E4["Е4 Pre-filter"]
E5["Е5 SLA"]
end
core --> standard
standard --> business
business --> enterprise
style core fill:#14532d,stroke:#22c55e
style standard fill:#172554,stroke:#3b82f6
style business fill:#78350f,stroke:#f59e0b
style enterprise fill:#3b0764,stroke:#a855f7
13. Компоненты системы
13.1. Document Ingestion (Я2 + С1)
Назначение: Единый интерфейс для парсинга документов любого формата в структурированное представление.
Алгоритм:
flowchart TB
IN["Входной файл"] --> DETECT["Определение формата"]
DETECT -->|PDF| PDF["PyMuPDF4LLM\nИзвлечение текста + таблиц"]
DETECT -->|Фото/Скан| SCAN["PaddleOCR-VL\nOCR + распознавание"]
DETECT -->|Word| DOCX["python-docx\nСтруктурный парсинг"]
DETECT -->|Excel| XLS["openpyxl\nТаблицы → JSON"]
PDF --> NORM["Нормализация"]
SCAN --> NORM
DOCX --> NORM
XLS --> NORM
NORM --> OUT["Unified Document\nJSON"]
style IN fill:#172554,stroke:#3b82f6
style OUT fill:#14532d,stroke:#22c55e
Технологии: PyMuPDF4LLM (PDF), PaddleOCR-VL 0.9B (сканы), python-docx (Word), openpyxl (Excel)
Пример: PDF паспорта товара (3 страницы, 2 таблицы) → JSON с полями: manufacturer, model, parameters[], certifications[], с координатами каждого значения в исходном документе.
13.2. VLM Processor (Я3 + С2 + С6)
Назначение: Извлечение данных из таблиц с сохранением структуры и привязкой к координатам (bounding boxes).
Почему VLM, а не классический OCR: Таблицы в фотокопиях «съезжаются» при текстовом парсинге. VLM видит документ как изображение и сохраняет пространственные связи между ячейками.
Бенчмарки:
| Модель | OmniDocBench | Таблицы | Рукописный |
|---|---|---|---|
| PaddleOCR-VL 0.9B | 94.5% | 91.2% | 87.3% |
| Qwen2.5-VL 7B | 93.1% | 95.8% | 82.1% |
| GPT-4o Vision | 89.7% | 88.4% | 91.5% |
Стратегия: PaddleOCR-VL для OCR + Qwen2.5-VL для bounding boxes. Гибрид даёт лучший результат, чем любая модель отдельно.
13.3. NER Anonymizer (вариант B)
Назначение: Автоматическое выявление и замена персональных данных перед отправкой в облачные LLM.
Сравнение NER-моделей (DR5):
| Модель | F1 | Precision | Recall | Размер | GPU | Локальная |
|---|---|---|---|---|---|---|
| GPT-4.1 | 0.94 | ~0.95 | ~0.93 | облако | -- | Нет |
| SpaCy ru_core_news_lg | 0.83 | 0.84 | 0.81 | ~500 MB | -- | Да (CPU) |
| DeepPavlov BERT NER | 0.81 | ~0.85 | ~0.78 | 2 GB | 6 GB | Да |
| Natasha (Slovnet) | ~0.80 | ~0.82 | ~0.78 | 30 MB | -- | Да (CPU) |
Источник: arxiv.org/html/2506.02589v1 (июнь 2025) — «Evaluating NER Models for Russian Cultural News Texts: From BERT to LLM»
Выбор: SpaCy ru_core_news_lg — оптимальный баланс качества (F1=0.83), скорости (CPU) и размера. LLM-модели (GPT-4o, F1=0.93) нельзя использовать — мы анонимизируем именно ДЛЯ передачи в LLM.
Гибридный подход:
- SpaCy NER: ФИО, организации, локации, даты
- Regex: ИНН (12 цифр), ОГРН (13 цифр), сертификаты (RA.RU.*), email, телефоны
- Microsoft Presidio: оркестрация NER + Regex + замена через Faker
13.4. RLM Orchestrator (Я4 + Б2)
Назначение: Граф рассуждений LangGraph 1.1 маршрутизирует запросы между калькулятором, детектором и рекурсивным парсером ГОСТов.
Конфигурация:
recursion_limit=5-- максимальная глубина рекурсии по ГОСТамtimeout=30s-- жёсткий таймаут на один документ- При превышении -- эскалация на эксперта с указанием точки останова
13.5. Калькулятор единиц (Я5 + С3 + С4)
Назначение: Детерминированный пересчёт физических величин и расчёт TUR (Test Uncertainty Ratio).
Почему не LLM: LLM галлюцинирует в математике. 5 мкм != 0.005 мм для LLM, но = 0.005 мм для Pint. Одна ошибка в пересчёте -- некорректный вердикт.
TUR 4:1: Международный метрологический стандарт. Если TUR < 4.0, лаборатория слишком «грубая» для данного товара. Пример: товар 5 мкм, лаборатория +-0.1 мм → TUR = 5/100 = 0.05 → FAIL (лаборатория в 20x грубее).
13.6. Детектор ограничений (Я7 + С5 + Б5)
Назначение: Обнаружение скрытых технологий в товаре, требующих дополнительных стандартов.
3 уровня (Tier):
| Tier | Метод | Пример | Пакет |
|---|---|---|---|
| 1 | Regex-паттерны | «Wi-Fi 6E» → IEEE 802.11ax → +5 стандартов | Стандарт |
| 2 | ML-классификатор | ruRoBERTa → категория ЭМС | Бизнес |
| 3 | LLM-анализ | GPT-5 → контекстный вывод | Бизнес |
Результат: «Умная колонка» с Wi-Fi 6E, BT 5.0 → +21 стандарт ЭМС, показатели 107 → 128.
14. Диаграмма потоков данных
flowchart LR
subgraph External["Внешние системы"]
ERP1C["ERP 1С"]
TECH["ТЕХЭКСПЕРТ"]
CLOUD["Облачные LLM\n(вариант B/C)"]
end
subgraph Boundary["Контур системы"]
API["FastAPI\nGateway"]
QUEUE["Celery\nОчередь"]
CACHE["Redis\nКэш"]
subgraph Processing["Обработка"]
ING["Ingestion"]
VLM["VLM\nProcessor"]
NER2["NER\nAnonymizer"]
RLM2["RLM\nOrchestrator"]
CALC2["Калькулятор\nPint"]
DET2["Детектор"]
GOST2["GOST\nParser"]
end
DB["PostgreSQL\npgvector"]
MON["Langfuse\nМониторинг"]
end
ERP1C -->|"1. Документ"| API
API -->|"2. Задача"| QUEUE
QUEUE --> ING
ING --> VLM
VLM --> NER2
NER2 -->|"Анонимизировано"| CLOUD
CLOUD -->|"Результат"| NER2
NER2 --> RLM2
RLM2 --> CALC2
RLM2 --> DET2
RLM2 --> GOST2
GOST2 -->|"Запрос"| TECH
TECH -->|"Стандарт"| GOST2
GOST2 --> DB
RLM2 -->|"Вердикт"| CACHE
CACHE -->|"Webhook"| ERP1C
Processing --> MON
style External fill:#172554,stroke:#3b82f6
style Boundary fill:#14532d,stroke:#22c55e
style Processing fill:#78350f,stroke:#f59e0b
Ключевые потоки:
| # | Поток | Данные | Протокол |
|---|---|---|---|
| 1 | ERP → API | Документ + метаданные | REST POST, JWT |
| 2 | API → Celery | Задача на обработку | AMQP (RabbitMQ) |
| 3 | NER → Cloud LLM | Анонимизированный текст | HTTPS, API key |
| 4 | GOST Parser → ТЕХЭКСПЕРТ | Запрос стандарта | HTTPS / SOAP |
| 5 | Cache → ERP | Вердикт + bbox JSON | Webhook POST |
15. Диаграмма последовательности
sequenceDiagram
participant E as Эксперт (ERP)
participant API as FastAPI
participant Q as Celery Queue
participant VLM as VLM Processor
participant NER as NER Anonymizer
participant LLM as Cloud LLM
participant RLM as RLM Orchestrator
participant GOST as GOST Parser
participant CALC as Калькулятор
participant ERP as ERP (1С)
E->>API: POST /api/v1/verify (документ)
API->>Q: Ставит задачу в очередь
Q->>VLM: Парсинг + OCR
VLM-->>Q: Структурированные данные + bbox
alt Вариант B (анонимизация)
Q->>NER: Анонимизация ПД
NER-->>Q: Токенизированные данные
Q->>LLM: Reasoning (анонимизировано)
LLM-->>Q: Результат
Q->>NER: Де-анонимизация
NER-->>Q: Исходные данные + результат
else Вариант C (прямой доступ)
Q->>LLM: Reasoning (без NER)
LLM-->>Q: Результат
end
Q->>RLM: Запуск графа LangGraph
RLM->>GOST: Требования ГОСТа
GOST-->>RLM: Параметры + ссылки
RLM->>CALC: Проверка единиц + TUR
CALC-->>RLM: PASS / FAIL + обоснование
loop Рекурсия (до 3 уровней)
RLM->>GOST: Связанный ГОСТ
GOST-->>RLM: Доп. требования
RLM->>CALC: Доп. проверки
CALC-->>RLM: Результат
end
RLM-->>Q: Итоговый вердикт + дерево решений
Q->>ERP: Webhook (JSON + bbox)
ERP-->>E: Результат в карточке товара
Среднее время обработки: <30 сек (p95) для одного документа. Кэшированный результат: <3 сек.
16. Диаграмма скученности связей (ГОСТы)
Визуализация рекурсивных зависимостей между стандартами в рамках ТР ТС 004/020/037. Узлы с наибольшим числом связей -- «хабы», требующие приоритетной обработки.
flowchart TB
subgraph TR004["ТР ТС 004\nНизковольтное"]
G1["ГОСТ 31604\n6 связей"]
G2["ГОСТ IEC 60950\n4 связи"]
G3["ГОСТ Р 51318\n5 связей"]
G4["ГОСТ 30805\n3 связи"]
end
subgraph TR020["ТР ТС 020\nЭМС"]
G5["ГОСТ 30804\n7 связей"]
G6["ГОСТ Р 51317\n5 связей"]
G7["ГОСТ CISPR 32\n4 связи"]
G8["ГОСТ IEC 61000\n6 связей"]
end
subgraph TR037["ТР ТС 037\nОпасные вещества"]
G9["ГОСТ IEC 62321\n3 связи"]
G10["ГОСТ Р 56748\n2 связи"]
end
G1 <--> G2
G1 <--> G3
G1 --> G5
G2 --> G4
G3 <--> G5
G3 --> G6
G4 --> G5
G5 <--> G6
G5 <--> G8
G5 --> G7
G6 <--> G7
G6 --> G8
G1 --> G9
G8 --> G9
G9 --> G10
style TR004 fill:#172554,stroke:#3b82f6
style TR020 fill:#78350f,stroke:#f59e0b
style TR037 fill:#450a0a,stroke:#ef4444
Анализ скученности:
| Стандарт | Связей | Тип | Приоритет |
|---|---|---|---|
| ГОСТ 30804 (ЭМС) | 7 | Хаб | Приоритетный |
| ГОСТ 31604 | 6 | Хаб | Высокий |
| ГОСТ IEC 61000 | 6 | Хаб | Высокий |
| ГОСТ Р 51317 | 5 | Мост | Высокий |
| ГОСТ Р 51318 | 5 | Мост | Средний |
| Остальные | 2--4 | Лист | Нормальный |
Выводы для архитектуры:
- ГОСТ 30804 и ГОСТ 31604 -- обязательные точки входа при рекурсивном обходе
- Кросс-регламентные связи (ТР ТС 004 ↔ ТР ТС 020) требуют единой базы, не изолированных справочников
- Pre-filter (пакет Enterprise) должен приоритизировать «хабы» для кэширования
17. Модель данных
17.1. Входные данные (запрос на сверку)
{
"request_id": "req_2026031401",
"document": {
"type": "product_passport",
"format": "pdf",
"file_url": "/uploads/passport_router_x500.pdf",
"pages": 3
},
"laboratory": {
"id": "lab_prommash",
"name": "ПРОММАШ ТЕСТ",
"accreditation_id": "RA.RU.21TP16"
},
"regulations": ["TR_CU_004", "TR_CU_020"],
"options": {
"recursion_depth": 3,
"ner_anonymize": true,
"return_bbox": true
}
}
17.2. Результат сверки
{
"request_id": "req_2026031401",
"verdict": "FAIL",
"confidence": 0.94,
"processing_time_ms": 18420,
"parameters_checked": 128,
"parameters_passed": 107,
"parameters_failed": 3,
"parameters_warning": 18,
"failures": [
{
"parameter": "Диапазон частот",
"product_value": "2.4-5.8 ГГц",
"lab_value": "до 3 ГГц",
"standard": "ГОСТ 30804.4.3-2013",
"reason": "Лаборатория не аккредитована для диапазона 5 ГГц",
"bbox": {"page": 2, "x": 145, "y": 312, "w": 280, "h": 24},
"severity": "critical"
}
],
"hidden_standards": [
{
"technology": "Wi-Fi 6E",
"detected_by": "tier_1_regex",
"additional_standards": ["ГОСТ Р 51317.4.3", "ГОСТ 30805.22"],
"additional_parameters": 21
}
],
"decision_tree": {
"root": "Товар: Роутер X500",
"children": [
{
"node": "ТР ТС 004: Безопасность",
"result": "PASS",
"children": []
},
{
"node": "ТР ТС 020: ЭМС",
"result": "FAIL",
"children": [
{
"node": "ГОСТ 30804: Частотный диапазон",
"result": "FAIL",
"reason": "5 ГГц вне аккредитации"
}
]
}
]
},
"resource_map": {
"alternative_labs": [
{
"id": "lab_ceti",
"name": "ЦЭТИ",
"covers_failed_params": true,
"match_score": 0.92
}
]
}
}
18. API-спецификация
18.1. Endpoints
| Метод | Путь | Описание |
|---|---|---|
| POST | /api/v1/verify |
Запуск сверки документа |
| GET | /api/v1/verify/{id} |
Статус и результат сверки |
| POST | /api/v1/verify/batch |
Пакетная сверка (до 50 документов) |
| GET | /api/v1/labs |
Список лабораторий и аккредитаций |
| GET | /api/v1/standards/{code} |
Информация о стандарте |
| GET | /api/v1/health |
Healthcheck |
18.2. Пример запроса
POST /api/v1/verify
Authorization: Bearer <jwt_token>
Content-Type: multipart/form-data
file: passport.pdf
laboratory_id: lab_prommash
regulations: ["TR_CU_004", "TR_CU_020"]
options.ner_anonymize: true
options.return_bbox: true
18.3. Коды ответов
| Код | Описание |
|---|---|
| 200 | Сверка завершена, результат в теле |
| 202 | Задача принята в очередь (async) |
| 400 | Некорректный формат документа |
| 401 | Невалидный JWT |
| 413 | Файл превышает 50 MB |
| 429 | Rate limit (100 запросов/мин) |
| 500 | Внутренняя ошибка |
| 503 | GPU недоступен (вариант A) |
19. Пользовательские сценарии
US1: Стандартная сверка
Как эксперт лаборатории, я хочу загрузить паспорт товара и получить автоматический вердикт, чтобы сократить время рутинной проверки.
| Описание | |
|---|---|
| Given | Паспорт PDF (роутер X500) + лаборатория ПРОММАШ ТЕСТ |
| When | Эксперт инициирует сверку через ERP |
| Then | Результат <= 30 сек с bounding boxes, вердикт PASS/FAIL |
US2: Несоответствие точности
| Описание | |
|---|---|
| Given | Товар: допуск 5 мкм. Лаборатория: +-0.1 мм |
| When | Система вычисляет TUR = 5/100 = 0.05 |
| Then | FAIL -- TUR 0.05 < 4.0, лаборатория в 20x грубее требования |
US3: Обнаружение скрытых стандартов
| Описание | |
|---|---|
| Given | «Умная колонка» с Wi-Fi 6E, BT 5.0 |
| When | Детектор Tier 1 (regex) → маркеры технологий |
| Then | +21 стандарт ЭМС, параметры 107 → 128 |
US4: Эскалация на эксперта
| Описание | |
|---|---|
| Given | Скан низкого качества, параметр размыт |
| When | VLM confidence = 0.45 (< порога 0.7) |
| Then | Эскалация на эксперта + bbox проблемного участка |
US5: Ресурсная карта
| Описание | |
|---|---|
| Given | Лаборатория ПРОММАШ ТЕСТ не покрывает 5 ГГц |
| When | Система ищет альтернативу среди 6 лабораторий |
| Then | «ЦЭТИ покрывает 5 ГГц, match score 92%» |
US6: Рекурсивная проверка ГОСТов
| Описание | |
|---|---|
| Given | ГОСТ 30804 ссылается на ГОСТ Р 51317, который ссылается на IEC 61000 |
| When | Рекурсивный пайплайн (глубина 3) |
| Then | Все требования из цепочки проверены, дерево решений построено |
20. Модель угроз (STRIDE)
20.1. Матрица угроз
| ID | Угроза | Вероятность | Влияние | Статус |
|---|---|---|---|---|
| T1 | Передача ПД в облако | Средняя | Высокое | Закрыто (вариант B/A) |
| T2 | Неточности в вычислениях | Низкая | Высокое | Закрыто (Pint калькулятор) |
| T3 | Повышенная нагрузка на API | Средняя | Среднее | Закрыто (rate limiting) |
| T4 | Подмена документа | Низкая | Среднее | Закрыто (JWT + audit log) |
| T5 | Недоступность GPU (вариант A) | Средняя | Среднее | Закрыто (CPU failover) |
| T6 | Некорректные данные в кэше | Низкая | Среднее | Закрыто (TTL + валидация) |
20.2. Анализ по STRIDE
| ID | Категория | Угроза | Вероятность | Влияние | Митигация |
|---|---|---|---|---|---|
| T1 | Раскрытие (Information Disclosure) | Передача ПД в облачные LLM API | Средняя | Высокое | NER-анонимизация (вариант B), On-Premise (вариант A) |
| T2 | Фальсификация (Tampering) | Неточности LLM в вычислениях | Низкая | Высокое | LLM не считает, Tool-Calling → Pint калькулятор |
| T3 | Отказ в обслуживании (DoS) | Повышенная нагрузка на API | Средняя | Среднее | Rate limiting (100 req/min), Celery очередь, WAF |
| T4 | Подмена (Spoofing) | Подмена документа | Низкая | Среднее | JWT-аутентификация, audit log в PostgreSQL, хэш документа |
| T5 | Отказ (Availability) | Недоступность GPU (вариант A) | Средняя | Среднее | Healthcheck, автоматический failover на CPU (с деградацией), алерты |
| T6 | Повышение привилегий (Elevation) | Некорректные данные в Redis-кэше | Низкая | Среднее | TTL кэша 24h, валидация при записи, изолированный Redis без внешнего доступа |
20.3. Защита по уровням
| Уровень | Механизм | Компонент |
|---|---|---|
| Сеть | WAF, rate limiting, TLS 1.3 | Nginx / Cloudflare |
| Аутентификация | JWT RS256 + refresh tokens | FastAPI middleware |
| Авторизация | RBAC (эксперт, админ, API) | PostgreSQL roles |
| Данные | NER-анонимизация + шифрование at-rest | ruRoBERTa + AES-256 |
| Аудит | Immutable audit log | PostgreSQL + Langfuse |
| Вычисления | Tool-Calling, no LLM math | Pint + LangGraph |
| Инфраструктура | Docker isolation, secrets vault | Docker Compose + Vault |
21. План реагирования на инциденты
21.1. Классификация инцидентов
| Уровень | Описание | Время реакции | Время восстановления |
|---|---|---|---|
| P0 | Полная недоступность системы | 30 мин | 4 часа |
| P1 | Некорректные результаты сверки | 2 часа | 8 часов |
| P2 | Снижение производительности | 4 часа | 24 часа |
| P3 | Незначительные ошибки интерфейса | 24 часа | 72 часа |
21.2. Процедура реагирования
flowchart TB
DET["Обнаружение\nLangfuse / Алерт"] --> CLASS["Классификация\nP0 / P1 / P2 / P3"]
CLASS -->|P0| STOP["Остановка системы\nИзоляция инцидента"]
CLASS -->|P1-P3| INVES["Расследование\nАнализ логов"]
STOP --> NOTIFY["Уведомление\nЗаказчик + команда"]
INVES --> NOTIFY
NOTIFY --> FIX["Устранение\nHotfix / Rollback"]
FIX --> VERIFY["Верификация\nТесты + мониторинг"]
VERIFY --> POST["Post-mortem\nОтчёт + улучшения"]
style DET fill:#172554,stroke:#3b82f6
style STOP fill:#450a0a,stroke:#ef4444
style POST fill:#14532d,stroke:#22c55e
21.3. Сценарии реагирования
P0: Недоступность системы
- Автоматический алерт команде (Telegram)
- Диагностика причины (логи Langfuse, healthcheck)
- Переключение на резервный режим (если применимо)
- Уведомление заказчика о статусе
- Post-mortem: анализ причин, улучшение мониторинга
P1: Некорректные вердикты (массовые FAIL/PASS)
- Остановка автоматической отправки в ERP
- Ручной аудит последних 100 вердиктов
- Проверка версий моделей, конфигурации Pint, кэша
- Rollback к последней стабильной версии
- Регрессионное тестирование перед повторным запуском
P2: Отказ GPU (вариант A)
- Автоматический failover на CPU-inference (латентность x3-5)
- Алерт команде DevOps
- Диагностика GPU (nvidia-smi, VRAM, температура)
- Перезагрузка / замена GPU
- Восстановление полного inference
22. Команда проекта
22.1. Роли и ставки
| Роль | Основные задачи | Ставка, руб/ч |
|---|---|---|
| AI-архитектор / Tech Lead | Архитектура, LangGraph-граф, промпты, code review | 5 350 |
| Backend / ML Engineer | FastAPI, VLM/RLM интеграция, fine-tuning, Docker | 4 250 |
| Интеграционный инженер | ERP (1С), ТЕХЭКСПЕРТ, webhook, NER-пайплайн | 3 800 |
| QA Engineer | Тест-кейсы, accuracy-тестирование, нагрузочные тесты | 3 200 |
22.2. Калькуляция стоимости (базовые пакеты, вариант C)
| Роль | Стандарт | Бизнес | Enterprise |
|---|---|---|---|
| AI-архитектор (42 / 58 / 76 ч) | 224 700 | 310 300 | 406 600 |
| Backend / ML (116 / 164 / 213 ч) | 493 000 | 697 000 | 905 250 |
| Интеграционный (31 / 37 / 49 ч) | 117 800 | 140 600 | 186 200 |
| QA (20 / 27 / 39 ч) | 64 000 | 86 400 | 124 800 |
| Подитог | 899 500 | 1 234 300 | 1 622 850 |
| Резерв на риски (10%) | 80 500 | 125 700 | 162 150 |
| Итого | 980 000 | 1 360 000 | 1 785 000 |
22.3. Надбавка за инфраструктурный вариант
Вариант B (+235 000 руб):
| Роль | Часы | Стоимость |
|---|---|---|
| Backend / ML | +32 ч | 136 000 |
| Интеграционный | +20 ч | 76 000 |
| Подитог | +52 ч | 212 000 |
| Резерв (10%) | 23 000 | |
| Итого надбавка | 235 000 |
Вариант A (+485 000 руб):
| Роль | Часы | Стоимость |
|---|---|---|
| AI-архитектор | +20 ч | 107 000 |
| Backend / ML | +50 ч | 212 500 |
| Интеграционный | +23 ч | 87 400 |
| QA | +10 ч | 32 000 |
| Подитог | +103 ч | 438 900 |
| Резерв (10%) | 46 100 | |
| Итого надбавка | 485 000 |
23. Дорожная карта
23.1. Gantt-диаграмма (пакет «Бизнес + B»)
gantt
title Бизнес + Вариант B (11-12 недель)
dateFormat YYYY-MM-DD
excludes weekends
section Фаза 0
Настройка инфраструктуры :a0, 2026-04-06, 5d
section Фаза 1
Парсинг + VLM :a1, after a0, 8d
NER-анонимизация :a1b, after a0, 6d
section Фаза 2
RLM Orchestrator :a2, after a1, 8d
Калькулятор + Детектор :a2b, after a1, 6d
section Фаза 3
ТЕХЭКСПЕРТ + Рекурсия :a3, after a2, 8d
Кэш + Webhook :a3b, after a2, 5d
section Фаза 4
Интеграционные тесты :a4, after a3, 5d
section Фаза 5
Приёмка на реальных ОА ИЛ :a5, after a4, 5d
23.2. Ключевые вехи
| Неделя | Веха | Критерий завершения |
|---|---|---|
| 1 | Инфраструктура | Docker, FastAPI, PostgreSQL, CI/CD запущены |
| 2--3 | Парсинг + VLM + NER | Все форматы парсятся, VLM accuracy >= 94%, NER precision >= 95% |
| 4--5 | RLM + Калькулятор | LangGraph-граф работает, Pint тесты зелёные, TUR корректен |
| 6--7 | ТЕХЭКСПЕРТ + Рекурсия | Автозагрузка ГОСТов, рекурсия 3 уровня работает |
| 8--9 | Кэш + Webhook + Тесты | Redis hit rate >= 60%, webhook доставка <= 3 сек, тесты >= 80% |
| 10 | Интеграционные тесты | E2E на 50 реальных документах, accuracy >= 90% |
| 11--12 | Приёмка | Smoke-тестирование на реальных ОА ИЛ, демо заказчику |
24. Предварительные исследования
24.1. Завершённые исследования
| # | Тема | Ключевой результат | Метрика |
|---|---|---|---|
| DR1 | AI для российских PDF | Трёхуровневый пайплайн: PyMuPDF4LLM → PaddleOCR-VL → Mistral OCR 3 | 94.5% |
| DR2 | RLM для ГОСТ-проверки | LangGraph 1.1 StateGraph -- единственный production-ready фреймворк | GA 1.1 |
| DR3 | VLM/RLM ландшафт 2025--2026 | Open-source VLM обошли GPT-4o на OmniDocBench | +15 п.п. |
| DR4 | Compliance Automation | Гибридный 3-tier детектор при стоимости $5--20/день | F1=0.95 |
| DR5 | NER-анонимизация для русских документов | SpaCy ru (F1=0.83) + Presidio + Faker. Приказ РКН N 140 — метод «введение идентификаторов» | F1=0.83 |
| DR6 | Интеграция с ТЕХЭКСПЕРТ | Публичного API нет. Стратегия: локальная PostgreSQL + pgvector + ручной импорт из подписки | 2025 стандартов |
24.2. Открытые вопросы для валидации
| # | Вопрос | Как валидируем | Когда |
|---|---|---|---|
| OQ1 | Точность NER-анонимизации на реальных паспортах | Тест на 100 документах заказчика | Неделя 3 |
| OQ2 | Полнота базы ТЕХЭКСПЕРТ по ТР ТС 004/020/037 | Сравнение с ручным списком эксперта | Неделя 6 |
| OQ3 | Латентность on-premise inference на A10 vs A100 | Benchmark на целевом оборудовании | Неделя 1 (вариант A) |
25. Стратегия тестирования
| Уровень | Инструмент | Покрытие | Критерий |
|---|---|---|---|
| Unit | pytest | Калькулятор, детектор, парсеры | >= 90% coverage |
| Integration | pytest + testcontainers | LangGraph-граф, Redis, PostgreSQL | Все edge cases |
| E2E | pytest + реальные документы | Полный пайплайн от загрузки до ERP | >= 90% accuracy на 50 документах |
| Accuracy | Custom benchmark | VLM, NER, детектор, TUR | Пороги из раздела 28 |
| Performance | Locust | API latency, throughput | p95 < 30 сек, 20 concurrent |
| Security | OWASP ZAP + ручной аудит | API, auth, injection | Нет critical/high findings |
Тестовые данные: 50 реальных паспортов товаров от заказчика (NDA). 10 синтетических edge-cases (гомоглифы, низкое качество, рекурсия 3 уровня).
26. Развёртывание и инфраструктура
26.1. Docker Compose (вариант B/C)
| Сервис | Образ | Порт | Назначение |
|---|---|---|---|
| api | python:3.12-slim | 8000 | FastAPI Gateway |
| worker | python:3.12-slim | -- | Celery worker (VLM + RLM) |
| redis | redis:7-alpine | 6379 | Кэш + брокер |
| postgres | postgres:17-alpine | 5432 | БД + pgvector |
| langfuse | langfuse/langfuse | 3000 | Мониторинг |
| rabbitmq | rabbitmq:3-management | 5672 | Очередь задач |
26.2. Серверные требования
| Параметр | Вариант B/C | Вариант A |
|---|---|---|
| CPU | 8 vCPU | 32 ядра |
| RAM | 32 GB | 128 GB |
| SSD | 100 GB | 1 TB NVMe |
| GPU | -- | NVIDIA A10/A100 |
| Стоимость | ~15 000 руб/мес (VPS) | Оборудование заказчика |
26.3. Мониторинг и бэкапы
- Langfuse: трейсинг каждого вердикта, latency, token usage, cost
- PostgreSQL: автобэкап каждые 6 часов, ретенция 30 дней
- Redis: snapshot каждый час, AOF для persistence
- Алерты: Telegram-бот при P0/P1 инцидентах
27. Критерии приёмки
| # | Модуль | Критерий | Метод проверки |
|---|---|---|---|
| 1 | Document Ingestion | 95%+ документов парсятся без ошибок | Тест на 50 реальных документах |
| 2 | VLM OCR | Accuracy >= 94% (OmniDocBench) | Benchmark на тестовом наборе |
| 3 | Калькулятор | 100% детерминированных вычислений | Unit-тесты (200+ кейсов) |
| 4 | TUR 4:1 | Корректный расчёт на всех единицах | Сравнение с ручным расчётом эксперта |
| 5 | Детектор | F1 >= 0.90 (Tier 1--3) | Тест на 50 документах с известными маркерами |
| 6 | Bounding Boxes | Bbox корректно указывает на значение | Визуальная верификация экспертом |
| 7 | ERP Webhook | Доставка <= 5 сек, retry при ошибке | Интеграционный тест с 1С |
| 8 | Latency | p95 < 30 сек (один документ) | Нагрузочный тест (Locust) |
| 9 | NER (вариант B) | Precision >= 95%, Recall >= 90% | Тест на 100 документах с размеченными ПД |
| 10 | On-Premise (вариант A) | Все сервисы работают на оборудовании заказчика | Smoke-тест на целевом GPU |
28. Нефункциональные требования
| # | Параметр | Порог |
|---|---|---|
| N1 | Время ответа API (p95) | <= 30 секунд |
| N2 | Кэшированный ответ | <= 3 секунды |
| N3 | Одновременные пользователи | >= 20 |
| N4 | Доступность (uptime) | >= 99% за неделю |
| N5 | Покрытие тестами (backend) | >= 80% |
| N6 | VLM accuracy | >= 94% (OmniDocBench) |
| N7 | NER precision (вариант B) | >= 95% |
| N8 | Детектор F1 (Tier 1--3) | >= 0.90 |
| N9 | TUR расчёт | 100% детерминированный |
| N10 | Максимальный размер документа | 50 MB / 100 страниц |
Часть III: Коммерческие условия
29. Как мы работаем
| Активность | Частота | Формат |
|---|---|---|
| Демо спринта | Каждые 2 недели | Видеозвонок + демонстрация на staging |
| Еженедельный sync | 1 раз в неделю (30 мин) | Статус, блокеры, решения |
| Доступ к staging | Постоянный | URL staging-сервера (со Sprint 0) |
| Канал связи | Постоянный | Telegram-группа |
| Приёмка результатов | По завершении фазы | Демо + чеклист приёмки |
Управление изменениями: Изменения к ТЗ оформляются через Change Request -- команда оценивает влияние на сроки и бюджет, обе стороны согласуют до начала работ.
30. Условия оплаты
30.1. Стандарт (980 000 руб)
| # | Событие | Оплата | Нарастающим итогом |
|---|---|---|---|
| 1 | Предоплата (30%) | 294 000 | 294 000 |
| 2 | Приёмка Ingestion + VLM (Фаза 1--2) | 392 000 | 686 000 |
| 3 | Финальная приёмка | 294 000 | 980 000 |
30.2. Бизнес (1 360 000 руб)
| # | Событие | Оплата | Нарастающим итогом |
|---|---|---|---|
| 1 | Предоплата (30%) | 408 000 | 408 000 |
| 2 | Приёмка Ingestion + VLM (Фаза 1--2) | 408 000 | 816 000 |
| 3 | Приёмка ТЕХЭКСПЕРТ + Рекурсия (Фаза 3) | 272 000 | 1 088 000 |
| 4 | Финальная приёмка | 272 000 | 1 360 000 |
30.3. Enterprise (1 785 000 руб)
| # | Событие | Оплата | Нарастающим итогом |
|---|---|---|---|
| 1 | Предоплата (30%) | 535 000 | 535 000 |
| 2 | Приёмка Ingestion + VLM (Фаза 1--2) | 440 000 | 975 000 |
| 3 | Приёмка ТЕХЭКСПЕРТ + Рекурсия (Фаза 3) | 360 000 | 1 335 000 |
| 4 | Приёмка Fine-Tuning + Рес. карта (Фаза 4) | 265 000 | 1 600 000 |
| 5 | Финальная приёмка | 185 000 | 1 785 000 |
Надбавка за инфраструктурный вариант (B: +235 000 / A: +485 000) оплачивается 50/50: половина с предоплатой, половина при финальной приёмке.
31. Ежемесячные расходы
31.1. Вариант B/C (облако)
| Статья | Расход/мес |
|---|---|
| Облачные LLM (GPT-5 Mini + Claude) | 10 000--18 000 |
| VPS (8 vCPU, 32 GB) | 12 000--15 000 |
| ТЕХЭКСПЕРТ (подписка, если требуется) | По тарифу заказчика |
| Итого | 22 000--33 000 |
31.2. Вариант A (On-Premise)
| Статья | Расход/мес |
|---|---|
| Электричество (GPU-сервер) | 3 000--5 000 |
| Обслуживание оборудования | 2 000--5 000 |
| ТЕХЭКСПЕРТ (подписка) | По тарифу заказчика |
| Итого | 5 000--10 000 |
Вариант A в 3--5x дешевле в эксплуатации, но требует начальных инвестиций в оборудование (GPU-сервер от 500 000 руб).
32. Риски и митигация
| # | Риск | Влияние | Вероятность | Решение |
|---|---|---|---|---|
| R1 | Качество сканов ниже ожидаемого | Среднее | Средняя | Предобработка (deskew, binarization) + VLM с Visual Grounding |
| R2 | Неточности LLM в вычислениях | Среднее | Низкая | Решено архитектурно: LLM не считает, Tool-Calling → Pint |
| R3 | Глубокая рекурсия ГОСТов | Среднее | Средняя | recursion_limit=5, таймаут 30 сек, эскалация на эксперта |
| R4 | Множественность форматов | Среднее | Средняя | Единый DocumentParser + тесты на каждый формат |
| R5 | Недоступность ТЕХЭКСПЕРТ | Низкое | Низкая | Локальный кэш PostgreSQL + fallback на ручной импорт |
| R6 | Гомоглифы в номерах ГОСТов | Среднее | Средняя | Unicode-нормализация + валидация по базе |
| R7 | Передача ПД в облако (вариант C) | Среднее | Средняя | Варианты B (NER-анонимизация) или A (On-Premise) |
| R8 | Изменение требований | Низкое | Средняя | Change Request процесс, фиксированные фазы |
33. Гарантии
- Гарантийный период: 30 дней после финальной приёмки
- Покрытие: исправление дефектов, обнаруженных в период гарантии
- Не покрывает: новый функционал, изменения требований, интеграции с новыми системами
- SLA (пакет Enterprise): uptime 99%, реакция 4 часа, восстановление 24 часа
- Исходный код: передаётся заказчику в полном объёме (Git-репозиторий)
34. Требования к клиенту
| # | Что нужно | Когда | Зачем |
|---|---|---|---|
| 1 | Доступ к ТЕХЭКСПЕРТ API/аккаунт | До старта | Интеграция парсера ГОСТов |
| 2 | 50 реальных паспортов товаров | Неделя 1 | Тестовые данные и бенчмарки |
| 3 | Спецификация ERP webhook (1С) | Неделя 2 | Формат JSON, auth, URL тестового контура |
| 4 | Контактное лицо (эксперт) | Постоянно | Валидация результатов, приёмка |
| 5 | GPU-сервер (вариант A) | Неделя 1 | Развёртывание on-premise |
| 6 | Список лабораторий + ОА ИЛ | Неделя 1 | Настройка ресурсной карты |
35. Что не входит
- Разработка ERP-модуля на стороне 1С (только webhook-интеграция)
- Закупка и настройка GPU-оборудования (вариант A -- только развёртывание ПО)
- Юридическое сопровождение по 152-ФЗ (только техническая реализация)
- Ведение и актуализация базы ГОСТов после запуска (опция О4)
- Обучение более 5 пользователей (дополнительно по запросу)
- Мобильное приложение
- Интеграции помимо 1С (Битрикс24, SAP и др.)
36. Открытые вопросы
| # | Вопрос | Контекст | Варианты |
|---|---|---|---|
| OQ1 | Формат взаимодействия с ТЕХЭКСПЕРТ | Критично для парсера ГОСТов | A) API / B) Web-scraping / C) Локальный экспорт |
| OQ2 | Спецификация ERP webhook (1С) | Нужен формат JSON и метод auth | A) Предоставите / B) Спроектируем вместе |
| OQ3 | Приоритетный вариант 152-ФЗ | Влияет на архитектуру и сроки | A) On-Premise / B) Анонимизация / C) Облако |
| OQ4 | Доступность GPU-сервера (если вариант A) | Нужно для планирования | A) Есть / B) Нужна закупка |
37. Перспективы развития
| # | Направление | Описание | Ориентировочно |
|---|---|---|---|
| 1 | Мультирегламентность | Расширение на другие ТР ТС (008, 010, 032) | +3--4 нед |
| 2 | AI-рецензент | Автоматическая генерация заключений эксперта | +4--6 нед |
| 3 | Batch-обработка | Массовая сверка 1000+ документов за ночь | +2--3 нед |
| 4 | Мобильное приложение | Фото паспорта → мгновенный вердикт в поле | +6--8 нед |
| 5 | Marketplace ИЛ | Внешние лаборатории подключаются к ресурсной карте | +8--12 нед |
При наличии бонуса на разработку (Enterprise) -- первые модули можно реализовать со скидкой.
38. Глоссарий
| Термин | Определение |
|---|---|
| VLM | Vision Language Model -- модель, обрабатывающая изображения и текст одновременно |
| RLM | Reasoning Language Model -- модель, строящая цепочку рассуждений |
| LLM | Large Language Model -- большая языковая модель (GPT-5, Claude и др.) |
| LangGraph | Фреймворк для создания графов рассуждений на базе LLM |
| Pint | Python-библиотека для детерминированного пересчёта физических величин |
| TUR | Test Uncertainty Ratio -- отношение точности прибора к точности лаборатории (стандарт 4:1) |
| Bounding Box | Прямоугольник, указывающий на область в документе (визуальное доказательство) |
| NER | Named Entity Recognition -- распознавание именованных сущностей (ФИО, ИНН и т.д.) |
| OCR | Optical Character Recognition -- распознавание текста на изображениях и сканах |
| Fine-Tuning | Дообучение модели на специализированных данных для повышения точности |
| Tool-Calling | Механизм вызова внешних инструментов (калькулятор, API) из LLM вместо самостоятельных вычислений |
| Pre-filter | Быстрый текстовый классификатор, отсеивающий простые случаи до тяжёлых моделей (экономия GPU) |
| Inference | Процесс получения результата от нейросети (прямой проход модели) |
| STRIDE | Модель анализа угроз: Spoofing, Tampering, Repudiation, Information Disclosure, DoS, Elevation |
| FastAPI | Python-фреймворк для создания высокопроизводительных REST API |
| Docker | Платформа контейнеризации -- упаковка приложения со всеми зависимостями |
| CI/CD | Continuous Integration / Continuous Deployment -- автоматическая сборка, тестирование и деплой |
| PostgreSQL | Реляционная база данных, хранит результаты сверок, справочники ГОСТов |
| pgvector | Расширение PostgreSQL для векторного поиска (семантический поиск по стандартам) |
| Redis | In-memory хранилище -- кэш результатов для мгновенных повторных запросов |
| Celery | Распределённая очередь задач -- асинхронная обработка документов |
| RabbitMQ | Брокер сообщений (AMQP) -- транспорт между API и обработчиками |
| Langfuse | Платформа мониторинга LLM -- трейсинг решений, латентность, стоимость токенов |
| Webhook | HTTP-callback -- система сама отправляет результат в ERP при готовности |
| API Gateway | Единая точка входа для всех запросов к системе (маршрутизация, аутентификация) |
| JWT | JSON Web Token -- стандарт аутентификации для API (цифровая подпись запросов) |
| RBAC | Role-Based Access Control -- разграничение доступа по ролям (эксперт, админ, API) |
| WAF | Web Application Firewall -- защита от атак на веб-приложение (DDoS, SQL injection) |
| GPU | Graphics Processing Unit -- видеокарта, используется для ускорения нейросетей |
| OmniDocBench | Бенчмарк для оценки качества OCR/VLM-моделей на документах |
| ERP | Enterprise Resource Planning -- система управления ресурсами предприятия (в данном случае 1С) |
| ОА ИЛ | Область аккредитации испытательной лаборатории |
| ТР ТС | Технический регламент Таможенного союза |
| ТЕХЭКСПЕРТ | Справочная система нормативно-технической документации |
| 152-ФЗ | Федеральный закон «О персональных данных» |
| SLA | Service Level Agreement -- соглашение об уровне обслуживания |
| p95 | 95-й процентиль -- значение, ниже которого 95% результатов |
| Rollback | Откат к предыдущей стабильной версии системы при обнаружении проблем |
| Presidio | Open-source фреймворк Microsoft для обнаружения и анонимизации персональных данных |
| Faker | Python-библиотека для генерации реалистичных фейковых данных (ФИО, адреса, ИНН) |
| Приказ РКН N 140 | Требования к обезличиванию ПД (5 методов), вступил в силу 01.09.2025 |
| Hotfix | Экстренное исправление критической ошибки без полного цикла релиза |
39. Следующие шаги
| # | Действие | Ответственный | Срок |
|---|---|---|---|
| 1 | Выбор пакета и варианта 152-ФЗ | Заказчик | 1 неделя |
| 2 | Подписание договора + предоплата | Обе стороны | 1 неделя |
| 3 | Предоставление доступа к ТЕХЭКСПЕРТ | Заказчик | До старта |
| 4 | Предоставление 50 тестовых документов | Заказчик | Неделя 1 |
| 5 | Спецификация ERP webhook (1С) | Заказчик | Неделя 2 |
| 6 | Старт разработки (Sprint 0) | AiDevTeam | После п. 2 |
Все оценки являются предварительными и будут уточнены после финализации требований.
Предложение действительно 30 дней. Разработка: AiDevTeam