Извлекаем данные из PDF в Excel с помощью ИИ
Для переноса счетов из PDF в Excel сначала задайте поля, которые нужно получить. Затем поручите нейросети извлечь значения вместе с номерами страниц и проверьте суммы. Название поставщика, номер документа и итоговая стоимость должны оставаться связаны с исходным файлом.
Я сохраняю эту связь до конца обработки. Если в общей выгрузке появилась сомнительная сумма, нужно сразу открыть нужную страницу. Повторно искать её среди десятков документов неудобно.
Разберём извлечение данных из PDF с помощью ИИ на счетах поставщиков. Тот же порядок подходит для актов и коммерческих предложений, если заранее определить их поля.
Какие PDF можно сразу передавать нейросети
Откройте один документ и попробуйте выделить текст. Если название компании и сумму можно скопировать, в файле есть текстовый слой. Для первого прогона используйте именно такие документы.
Если страница ведёт себя как цельная картинка, потребуется распознавание текста, или OCR. Для работы с ней выберите инструмент, который умеет читать изображения страниц. Если используемый чат получает только извлечённый текст, содержимое скана ему может быть недоступно.
Даже наличие текстового слоя не гарантирует правильного чтения. Скопируйте несколько строк с позициями и посмотрите, сохранился ли порядок. Название товара, количество и цена могут оказаться разнесены по разным частям текста.
Для настройки возьмите несколько файлов с разным оформлением. Добавьте обычный счёт, многостраничный документ и скан. Так получится проверить разные случаи до обработки всей папки.
Кстати, если вы хотите протестировать все самые свежие модели уровня Claude Sonnet 5, GPT-5.6 или Gemini 3 в одном удобном месте и сравнить их ответы без костылей с иностранными картами - на платформе SYNTX.AI это можно сделать за пару кликов.
Какие поля извлекать из документов
Разделите сведения о документе и его товарных позициях.
На уровне документа нужны имя файла, номер, дата, поставщик, валюта и итоговая сумма. На уровне позиции - название, количество, единица измерения, цена и сумма строки.
Это разделение помогает избежать ошибки при подсчёте. Если итог счёта повторяется возле каждого товара, его легко случайно сложить несколько раз.
Для общей информации задайте такие поля.
Для товарных позиций подготовьте второй набор.
document_id связывает позиции со счётом. Присвойте его заранее, например D001, D002 и D003. Номер из самого документа храните отдельно - одинаковые номера могут встретиться у разных поставщиков.
Для status достаточно трёх значений. extracted означает, что значение извлечено, но ещё требует предусмотренной проверки. needs_review указывает на сомнение или расхождение. not_found используется, когда сведения не найдены.
Промпт для извлечения данных из PDF
Загрузите пробные документы в инструмент с поддержкой PDF и передайте схему полей. Первый запрос должен ограничивать свободу обработки.
Последние ограничения нужны для сохранения исходного содержания. Две одинаковые позиции могут относиться к разным партиям или иметь разные цены. Объединять их до проверки не стоит.
То же касается упаковок. Если в счёте указаны две коробки, нельзя автоматически записывать две штуки. Сначала нужно найти количество единиц в коробке и понять, к какой единице относится цена.
Как проверить распознавание сумм
Для примера возьмём счёт с двумя позициями. Первая содержит три единицы по 2400 рублей на сумму 7200 рублей. Вторая - две единицы по 650 рублей на сумму 1300 рублей. Доставка стоит ещё 500 рублей. Итог документа составляет 9000 рублей.
Проверка начинается со строк. Три умножить на 2400 равно 7200. Два умножить на 650 равно 1300. Затем складываются суммы позиций и отдельно указанная доставка.
Если нейросеть прочитала 2400 как 240, первая строка не сойдётся. Это повод открыть исходную страницу. Автоматически дописывать ноль нельзя, даже если такой вариант кажется очевидным.
Передайте извлечённые данные на отдельную проверку.
Саму арифметику выполняйте формулами Excel или кодом, который можно просмотреть. Нейросети можно поручить подготовку формул и объяснение расхождений.
Для меня проверка итогов - способ найти часть ошибок. Если модель поменяла местами названия двух товаров, общая сумма останется правильной. Поэтому одной арифметики недостаточно.
Что делать с нечитаемыми и пропущенными полями
Пустая ячейка должна иметь объяснение. Значение может отсутствовать в документе, плохо читаться или не попасть в обработанную страницу. Это разные ситуации.
Если номер счёта читается неоднозначно, сохраните пометку и страницу. Если валюта не указана, не определяйте её по языку документа. Если итог находится на последней странице, проверьте, что эта страница вообще была обработана.
На многостраничных счетах отдельно смотрите переходы. Позиция может начинаться внизу одной страницы и продолжаться на следующей. Повторный заголовок способен попасть в данные как товар, а промежуточный итог - как окончательная сумма.
Удобно дать дополнительное задание.
После этого открывайте отмеченные страницы и уточняйте значения. Если файл повреждён или скан слишком размытый, запросите другую копию. Повторение того же промпта не восстановит отсутствующие символы.
Как перенести результат в Excel
Для переноса данных из PDF в Excel удобно использовать два CSV-файла. Один содержит сведения о документах, второй - позиции. Формат и порядок колонок должны совпадать для всей партии.
Попросите подготовить выгрузку.
Откройте CSV через импорт данных в Excel. При импорте проверьте кодировку, разделитель и типы колонок. Номера документов и артикулы задайте как текст, чтобы сохранить ведущие нули.
Проверьте несколько дробных значений. Если цена стала текстом или десятичный разделитель распознан неверно, последующие вычисления будут некорректны.
Как обработать всю папку документов
После проверки пробной партии сохраните схему полей и промпты. Остальные файлы обрабатывайте по тем же правилам.
Ведите отдельный перечень исходных документов с их document_id. Для каждого фиксируйте состояние обработки. Файл, который не удалось прочитать, должен остаться в этом перечне с объяснением.
Не удаляйте документы только потому, что у них совпадают номер и сумма. Для проверки возможного дубля нужны как минимум поставщик, дата и содержание. Исправленная версия счёта тоже может сохранять прежний номер.
При объединении результатов сверьте количество входных файлов и обработанных документов. Затем проверьте, что каждая товарная позиция связана с существующим document_id.
Я считаю такую выгрузку готовой, когда для каждой суммы можно открыть исходный файл, а все неразобранные случаи собраны отдельно. Нечитаемая цифра должна попасть на проверку, сохранив связь с документом.