От ручной обработки документов к ИИ: автоматизация составления конкурентных листов для Русской Рыбопромышленной Компании
В Русской Рыбопромышленной Компании работает флот из десяти промысловых судов, более 2 500 рабочих мест. Каждому из судов нужно обеспечить регулярное снабжение — от провизии до снастей и оборудования. Специалисты по закупкам формируют конкурентные листы, отправляют поставщикам, получают в ответ счета c огромным количеством строк номенклатуры. Поставщики присылают документы в своем формате и со своей номенклатурой. Закупщик вручную сопоставляет позиции: «болт М8» из заявки может оказаться «винтом метрическим 8мм» в счете.
На рутинную закупочную процедуру уходит большое количество времени. Десятки процедур в неделю. Ошибки в сопоставлении приводят к задержкам, недопоставкам, простоям.
РРПК поставили задачу:
- автоматизировать сопоставление позиций из конкурентных листов и счетов независимо от форматов документов и номенклатуры поставщиков;
- сократить время обработки одной закупочной процедуры с нескольких часов до минут;
- минимизировать человеческие ошибки при заполнении итоговых документов;
- в перспективе полностью автоматизировать процесс через интеграцию с почтой и 1С.
Главная сложность заключалась в разнообразии форматов документов. Счета приходят в PDF, Excel, отсканированных изображениях. Таблицы могут быть разнообразны по структуре, данные представлены по форме поставщика, а не по требованиям заказчика. Стандартные OCR-решения не справлялись.
Мы построили систему из двух ключевых компонентов: препроцессор для извлечения данных из документов любого формата и ML-модуль для интеллектуального сопоставления номенклатуры.
Первый этап — превратить многообразие документов в четко структурированные данные.
Мы разработали собственный парсер, который:
- распознаёт PDF, Excel, изображения;
- обрабатывает таблицы с нестандартной структурой, когда данные одной позиции разнесены по нескольким строкам или ячейкам;
- вытаскивает номенклатуру, количество, цены, артикулы — даже если в документе нет явных таблиц.
Разработали специализированный OCR-движок под закупочные документы. За время работы мы модернизировали его под специфические сценарии: добавили поддержку новых типов таблиц, научили обрабатывать документы без явной табличной структуры.
Модуль сопоставления
Второй барьер — понять, что «болт М8 DIN 933» и «винт 8х20 оцинкованный» — это один товар. Или наоборот — разные. Здесь классические алгоритмы строкового сравнения бессильны.
Мы построили ML-пайплайн, который:
- использует семантическое сходство для поиска соответствий между позициями;
- учитывает контекст — артикулы, единицы измерения, цены;
- выдаёт степень уверенности в сопоставлении (пороговое значение — 80%);
- избегает дублирования — одна позиция из счёта не может заполнить две строки конкурентного листа.
Если система не уверена в сопоставлении, она честно сообщает об этом. Закупщик видит результат в удобном интерфейсе, может вручную скорректировать спорные позиции и выгрузить итоговый конкурентный лист.
Архитектура
Систему построили на микросервисной архитектуре с оркестратором, который управляет процессом от загрузки документов до генерации итогового файла. Веб-интерфейс на React даёт закупщикам привычный инструмент без необходимости обучения.
Исследование и анализ
Погрузились в специфику закупочных процессов РРПК. Изучили реальные документы — конкурентные листы и счета от десятков поставщиков. Выяснили, что форматы варьируются от структурированных Excel-таблиц до отсканированных факсов.
- Собрали требования к распознаванию и сопоставлению.
- Сформировали датасет из реальных документов для обучения.
- Определили граничные случаи, где автоматизация должна передавать управление человеку.
Разработка MVP
Главная задача — доказать, что система работает в реальных условиях.
- Разработали препроцессор для извлечения данных из PDF и Excel.
- Построили ML-модуль для сопоставления номенклатуры.
- Создали веб-интерфейс, где закупщик видит результаты сопоставления и может вручную исправить спорные позиции.
- Реализовали выгрузку итогового конкурентного листа в формате, готовом к загрузке в 1С.
MVP протестировали на 50 парах реальных документов. Система показала точность сопоставления выше 85% на типовых кейсах.
Внедрение и доработка
После запуска MVP начали собирать обратную связь от закупщиков. Выяснили узкие места:
- Некоторые поставщики присылают счета в нестандартных форматах — добавили поддержку документов без явных таблиц.
- Система иногда дублировала позиции — доработали логику, чтобы исключить повторы.
- Закупщикам нужна была поддержка Excel-файлов от поставщиков, а не только PDF — расширили форматы.
- Интегрировали систему с корпоративной почтой через N8N для автоматического мониторинга входящих писем со счетами.
Сейчас работаем над полной автоматизацией: система будет сама отслеживать закупочные процедуры в почте, обрабатывать документы и отправлять результат менеджеру без участия человека на промежуточных этапах.
Система показала хорошие результаты и может быть встроена в ежедневную работу закупочного отдела.
Ключевые показатели:
- Время обработки одной закупочной процедуры:сокращено с 2–3 часов до 10–15 минут.
- Точность автоматического сопоставления: 85%+ на типовых документах, более 95% после ручной корректировки.
- Поддержка форматов: PDF, Excel, изображения, документы без таблиц.
- Снижение ошибок: минимизированы дублирования и пропуски позиций благодаря контролю на уровне алгоритмов.
- Интеграция в работу: закупщики используют систему, MVP переведён в промышленную эксплуатацию.
Закупщик загружает конкурентный лист и счёт. Через несколько секунд видит заполненную таблицу. Проверяет спорные позиции, если они есть. Выгружает готовый документ. То, на что раньше уходила часть рабочего дня, теперь занимает около 10 – 15 минут.
Следующий шаг — полная автоматизация через почтовую интеграцию. Система будет сама находить закупочные документы по конкретным процедурам во входящих письмах, обрабатывать документы и отправлять результаты менеджеру. В перспективе — интеграция с 1С для прямой загрузки данных без промежуточных выгрузок.
проекта