Приём транспортных накладных у логистического оператора
40 000 сканов накладных в месяц, вручную вводимых в учётную систему. Мы автоматизировали уверенную часть и оставили остальное людям.
- Отрасль
- Логистика
- Результат
- 78% документов без участия человека
- Стек
- Next.js, PostgreSQL, OCR, извлечение данных, интеграция с учётной системой
Ситуация
Логистический оператор получал накладные от нескольких сотен перевозчиков — почти все в виде сканов PDF разного качества. Шесть человек большую часть дня читали из каждого документа шесть полей и переносили их в учётную систему.
Две предыдущие попытки провалились. Шаблонный OCR закрывал четырёх крупнейших перевозчиков и ломался при любом изменении формы. Прототип на языковой модели впечатляюще извлекал поля в демонстрации и на выборке реальных сканов достаточно часто придумывал значения, чтобы финансовая служба отказалась его рассматривать.
Что мы сделали иначе
Сначала разметка. До любого конвейера 800 документов были размечены вручную с учётом распределения по перевозчикам. Этот набор стал мерой для всего дальнейшего и перевёл разговор о точности из спора в арифметику.
Проверка вместо доверия. Извлечение выдавало типизированную схему, после чего работали бизнес-правила: позиции складываются в итог, даты попадают в срок перевозки, код перевозчика находится в справочнике. Значительная часть ошибок извлечения не проходила эти проверки автоматически.
Маршрутизация по уверенности. Каждый документ получал оценку. Порог выбирала финансовая служба — увидев кривую точности, они назвали долю ошибок, которую процесс способен принять. Всё, что ниже порога, уходило на проверку с подсветкой спорных полей и открытой рядом страницей источника.
Шесть недель параллельной работы. Конвейер обрабатывал весь поток рядом с ручной командой, ничего не проводя. Это дало сравнение точности по каждому полю на реальной работе и стало причиной того, что переключение прошло незаметно.
Что получилось
- 78% документов проводятся без участия человека.
- Оставшиеся 22% попадают к проверяющему с уже отмеченными сомнительными полями; обработка одного занимает примерно пятую часть прежнего времени.
- Измеренная доля ошибок среди автоматически проведённых документов оказалась ниже ручной базовой линии — не потому, что модель лучше человека, а потому что арифметическая проверка не устаёт к шести вечера последнего дня месяца.
- Шесть человек перешли на подключение новых перевозчиков и разбор исключений. Никого не сократили — это было условием заказчика с первой встречи.
О чём стоит предупредить
Плохие сканы плотных таблиц остаются сложным случаем и непропорционально часто попадают в очередь проверки. Мы говорили об этом до начала работ, и это по-прежнему так. Честный предел здесь на стороне перевозчиков: решение — качество исходных документов, а не более крупная модель.