От каждого документа нам нужен набор полей: поставщик, номер и дата счёта, перечень позиций при их наличии, валюта, сумма без налога, налог и общий итог. Распознанные данные необходимо приводить к единому виду — даты в один формат, числа с проверкой, чтобы сумма позиций совпадала с итоговой, — и отсеивать результаты с низкой достоверностью в отдельную очередь. Готовые записи должны уходить одновременно в базу данных и в электронную таблицу, чтобы финансисты сразу могли ими пользоваться. Реализацию ждём на Python с надёжным OCR-движком, внятными логами и удобным механизмом повторного прогона тех документов, что не удалось обработать с первого раза.
Задача боевая, а не разовый эксперимент. Мы дадим подборку настоящих сканов разного качества, с перекосами и на нескольких языках для отладки, а по итогам ждём исходники, инструкцию по развёртыванию и небольшую передачу знаний, чтобы наша команда могла сама поддерживать и дорабатывать инструмент.
— Приём сканов и PDF из отслеживаемого каталога, выравнивание и подготовка изображений
— Извлечение поставщика, номера, дат, сумм, налога и позиций с оценкой достоверности
— Приведение полей к единому формату, сверка позиций с итогом, отсев спорных на ручную проверку
— Запись результатов в базу и таблицу, ведение логов и повторный прогон сбойных документов