Конвейер разбора входящих документов
1 400 документов в сутки без ручного ввода данных
Пайплайн, который принимает накладные, инвойсы и акты в любом виде — PDF, фото, скан, письмо — извлекает поля, сверяет их с учётной системой и отдаёт человеку только спорные случаи.
- Клиент
- Demo Logistics Operator
- Отрасль
- Логистика
- Роль
- Разработчик и владелец процесса внедрения
- Год
- 2025
- Услуги
- Автоматизация процессов, Интеграции, Evals и надёжность
01
Контекст
Отдел из шести человек вручную переносил данные из документов в учётную систему. В пик — до 1 400 документов в сутки. Ошибка в номере или сумме всплывала через недели и стоила дороже самого ввода.
02
Проблема
Документы приходят от 200 контрагентов, и у каждого свой формат. Часть — фотографии с телефона под углом. Модель, которая «обычно угадывает», здесь не годится: нужна была не высокая средняя точность, а понимание, каким именно полям можно доверять, а какие нужно показать человеку.
03
Решение
Извлечение в строго типизированную схему с обязательной уверенностью по каждому полю. Дальше — детерминированные сверки: сумма позиций совпадает с итогом, контрагент есть в справочнике, номер документа не дублируется, дата в допустимом диапазоне. Документ проходит автоматически только если все проверки зелёные и уверенность выше порога. Всё остальное попадает в очередь разбора, где оператор видит документ, предзаполненные поля и подсвеченное расхождение.
04
Как работает
Приём
Документы приходят из почтового ящика, папки обмена и мобильного приложения водителей. Всё складывается в объектное хранилище с исходным файлом.
Подготовка
Определение типа документа, выравнивание и повышение читаемости фотографий, разбивка многостраничных PDF на отдельные документы.
Извлечение полей
Модель заполняет типизированную схему. Для каждого поля возвращаются значение, уверенность и фрагмент документа, откуда оно взято.
Детерминированные сверки
Арифметика, справочники, дубликаты, диапазоны дат. Эти проверки не используют модель — только код и данные учётной системы.
Развилка
Всё сошлось — документ уходит в учётную систему. Есть расхождение или низкая уверенность — в очередь оператора с подсветкой проблемного места.
Обучение на правках
Каждая правка оператора сохраняется. Раз в неделю правки анализируются: повторяющаяся ошибка означает либо новое правило сверки, либо доработку промпта под конкретный формат контрагента.
05
Интеграции
- IMAP — почтовый ящик приёмки
- S3-совместимое хранилище
- REST API учётной системы
- Telegram — уведомления о застрявших документах
06
Надёжность
Что сделано, чтобы система вела себя предсказуемо в эксплуатации, а не только на демонстрации.
- Типизированная схема на Pydantic: документ с невалидной структурой не проходит дальше по определению
- Детерминированные сверки поверх вывода модели — арифметика и справочники не отдаются на усмотрение LLM
- Пороги уверенности настраиваются по каждому полю отдельно: у суммы порог выше, чем у комментария
- Идемпотентность по хешу файла — повторная отправка не создаёт дубль
- Очередь с ретраями и dead-letter; застрявшие документы видны на дашборде и в Telegram
- Исходный файл хранится всегда, чтобы любой автоматический разбор можно было перепроверить
- Персональные данные из документов не попадают в логи и в мониторинг ошибок
07
Результат
87%
Документов без ручного ввода
Доля документов, прошедших все сверки автоматически. Замер за 60 дней после выхода на полную нагрузку.
−78%
Ошибки ввода, найденные после проводки
Сравнение квартала после внедрения с аналогичным кварталом до.
4 мин → 18 с
Время обработки документа
Медиана от поступления до появления в учётной системе, включая очередь.
08
Моя роль
- Архитектура пайплайна, схема данных и модель порогов уверенности — лично
- Слой детерминированных сверок — лично
- Интерфейс очереди разбора для операторов — совместно с фронтенд-разработчиком клиента
- Развёртывание и мониторинг — DevOps клиента, я готовил требования и runbook
09
Стек
- Python
- Claude
- Pydantic
- Celery
- Redis
- PostgreSQL
- MinIO
- Sentry
Следующий проект
Автоматизация обработки входящих заявок
Первый содержательный ответ клиенту — за 4 минуты вместо 9 часов