Архитектура invoice parsing из PDF
Нужно построить систему, которая извлекает полезные поля из PDF-инвойсов разных поставщиков. Какую архитектуру выбрать?
Ответить самому
Сначала сформулируйте ответ как на собеседовании, затем откройте разбор и оцените себя.
Короткий ответ
Нужен hybrid pipeline: PDF parser для native PDFs, OCR для scans, layout/table extraction, rules/NER/LLM layer, validation и gold-set eval.
Полный разбор
Сначала делим входы: native PDF, где можно достать текст и координаты, и scanned PDF, где нужен OCR. Далее строим layout representation: страницы, блоки, таблицы, координаты, confidence OCR. На этом слое можно применять правила для стабильных vendor templates и ML/LLM для более разнообразных форматов.
Хорошая архитектура обычно hybrid: deterministic extraction там, где поле явно находится по шаблону; model-based extraction для вариативных описаний; post-processing для нормализации дат, валют, сумм и vendor names; validation rules для проверки total, tax, line items и обязательных полей.
Система должна возвращать не только JSON, но и confidence плюс evidence: откуда взято поле. Это важно для ручной проверки и аудита.
Теория
Document AI почти всегда требует сочетания layout, OCR, правил, моделей и бизнес-валидации. Один LLM без контроля плохо переносит edge cases.
Типичные ошибки
- Пытаться решить все одним prompt к PDF.
- Не разделять native PDF и scan.
- Не возвращать evidence/confidence для полей.
Как отвечать на собеседовании
- Начни с типов PDF и layout representation.
- Обязательно добавь validation и human review queue.