Нейросети для работы с документами: как ускорить разбор
Разбор документов сдвигается с мёртвой точки там, где вместо «посмотри файл» ты начинаешь диктовать модели форму ответа. Одна карточка на документ, одинаковый набор полей, рядом с каждой важной цифрой - дословная цитата с номером страницы. Дальше грузишь партиями по 5-10 штук, сводишь карточки в один реестр и читаешь одну таблицу вместо сорока PDF.
Цитата держит на себе всю проверку: жмёшь Ctrl+F, ищешь фрагмент в исходнике и по результату поиска понимаешь, живая перед тобой строка или выдуманная.
Каждый день в закрытом канале ИИмперии выкладываю, что нового происходит в работе с ИИ: разборы, готовые промпты и связки, шаблоны ролей цифровых сотрудников. Если тема зашла, там она продолжается в ежедневном режиме.
На столе сорок PDF - куда бить первым?
Начинать надо с раскладки файлов по трём кучам: текстовые PDF и DOCX, сканы и фото, всё остальное вроде архивов, таблиц и презентаций. Текстовые уходят в работу сразу, сканы сначала прогоняешь через распознавание, а с архивами и презентациями нейросеть чаще вообще не нужна.
Работа скучная, и в первый раз я её честно пропустил: загрузил всё подряд одним заходом, а потом полвечера искал, откуда в карточке взялась сумма, которой нет ни в одном документе. Теперь раскладываю всегда.
Отличить текстовый PDF от скана можно мышью: если абзац выделяется, модель прочитает символы напрямую, а если курсор рисует прямоугольник поверх картинки, перед тобой скан со своей отдельной историей, к которой вернусь ниже.
Дальше сформулируй, зачем тебе эта пачка. Формулировка «что тут написано» ничего не даёт, потому что вопрос всегда упирается в действие, которое ты предпримешь после ответа. Почти всё сводится к четырём:
- Найти. В какой из сорока папок лежит акт по объекту на Ленина, 14.
- Сравнить. Чем версия договора от контрагента отличается от нашего шаблона.
- Свести. Сколько всего мы заплатили по этим счетам и кому.
- Решить. Какие из этих документов требуют действия на этой неделе.
Под каждый вопрос - своя форма вывода, и форма делает тут основную работу. То же самое видно на числовых файлах: когда просишь разобрать таблицу и объяснить формулы, ответ вытягивает заранее заданная структура. Вкус модели на такой задаче лучше вообще не звать.
Почему «сделай выжимку» - это вода?
Потому что общий запрос включает режим пересказа. Модель выхватывает три-четыре самых заметных места, обворачивает их гладким абзацем, а остальное сливает в «документ в целом стандартный». Ответ получается гладкий и совершенно нерабочий: ты не знаешь, что пропущено, а пропущено обычно ровно то, что тебя и касается.
Сравни два захода на один счёт-фактуру.
Заход первый - «сделай выжимку». В ответ приходит «Документ содержит информацию о поставке оборудования и условиях оплаты». Спасибо, я догадывался.
Теперь то же самое, но с формой: «выдай поля - контрагент, ИНН, номер, дата, сумма без НДС, НДС, итого, срок оплаты, предмет одной строкой; каждое поле - с цитатой из документа; если поля нет, пиши “не найдено”». На выходе строка реестра, которую копируешь в таблицу и живёшь дальше.
Разницу делают три вещи:
- Закрытый список полей. Ты сам решил, что в документе важно, а такое решение требует знания твоего бизнеса, которого у модели нет и не будет.
- Обязательная метка «не найдено». Без неё пустое поле молча исчезает, и ты не отличишь «в документе нет срока оплаты» от «модель не дочитала».
- Цитата рядом с цифрой. Превращает проверку из перечитывания документа в поиск по строке.
Тяжелее всего даётся третий пункт, и он же ценнее остальных. Модель достраивает правдоподобное: если сумма написана криво или разбита на две строки, она соберёт из окружения число, похожее на правду. Цитата закрывает эту лазейку, потому что выдуманный фрагмент находится поиском по файлу за секунду. Где у этих инструментов вообще проходит край, я разбирал в материале про честные границы нейросетей.
Что модель вытянет, а на чём сядет?
Хорошо идёт всё, что написано словами и имеет предсказуемую структуру: договоры, счета, акты, коммерческие предложения, регламенты, техзадания, протоколы. Проблемы начинаются там, где смысл живёт в вёрстке: многоуровневые таблицы, чертежи, сметы с объединёнными ячейками, презентации со схемами.
| Тип документа | Что модель делает хорошо | Где ломается |
|---|---|---|
| Договор, текстовый PDF | Разбор по пунктам, светофор рисков, поиск асимметрии | Не знает судебной практики и твоих устных договорённостей |
| Счёт, акт, накладная | Извлечение полей в реестр, сверка сумм по цитатам | Путает похожие номера, если грузить пачкой без разделителей |
| Регламент, инструкция | Сжатие до чек-листа, поиск противоречий между разделами | Не видит, как процесс реально работает у вас |
| Техзадание, бриф | Список требований, вопросы к заказчику, оценка неполноты | Не оценивает трудоёмкость без твоих нормативов |
| Скан и фотография | После распознавания - всё то же самое | До распознавания читает наугад, цифры плывут |
| Смета, сложная таблица в PDF | Общая логика, поиск строк по названию | Теряет привязку строки к колонке, суммы считает неверно |
| Презентация со схемами | Текст со слайдов | Смысл стрелок и связей на схеме |
| Многостраничное приложение с реестром | Выборочный поиск по конкретному запросу | Сплошной пересчёт: к середине начинает пропускать строки |
Чем ближе документ к сплошному тексту, тем выше результат; как только появляется визуальная структура, добавляй промежуточный шаг и вытаскивай данные в CSV или Excel, чтобы считать их как таблицу. Разглядывание картинки моделью заканчивается плохо примерно всегда. Для числовой части сразу переходи в режим из разбора про таблицы и формулы.
Эта статья закрывает один вопрос: как быстро разобрать документы и не поймать ошибку в важных данных. Документы - один участок из многих: рядом стоят отчётность, переписка, задачи и внутренние регламенты, и собираются они по одной логике. Хочешь картину целиком и по шагам - забирай бесплатное обучение: доступ приходит на почту, материал открывается сразу.
Как гонять пачку, чтобы файлы не слиплись?
Конвейером: одинаковая карточка на каждый файл, партии по 5-10 документов, сведение в один реестр, и только потом чтение.
Главная ошибка - вывалить тридцать файлов одним сообщением и попросить «разберись». Модель начнёт смешивать данные: сумма из третьего документа уедет в карточку седьмого. Найти это потом дороже, чем сделать сразу по-человечески.
Порядок, который держится на любых объёмах:
- Назови файлы по единой схеме.
2026-03-14_ООО-Вектор_счёт_142000.pdf. Полминуты на файл, зато дальше и ты, и модель ссылаетесь на документ однозначно, без «вот тот, второй сверху». - Зафиксируй форму карточки один раз. Список полей, порядок, метка «не найдено», требование цитаты. Этот текст переиспользуешь в каждой партии без изменений.
- Грузи партиями по 5-10 файлов. Перед каждым явно пиши разделитель
=== ФАЙЛ: имя ===- дешёвая страховка от склейки. - Требуй вывод одной таблицей. Строка на документ, колонки - твои поля. «По каждому файлу расскажу подробно» отсекай сразу: нужна таблица, которую можно скопировать в Excel.
- Своди партии в один реестр. Хоть руками, хоть моделью, но сведение проверяй глазами - на этом шаге легче всего потерять строку.
- Сортируй реестр по действию. Срочно оплатить, ждёт подписи, спорное, в архив. Реестр без колонки «что делать» превращается в ещё один документ, который никто не откроет.
Что сказать модели дословно на шаге с партией:
Ниже 8 документов, каждый начинается со строки === ФАЙЛ: ===. Разбери каждый отдельно, не смешивая данные между файлами. Выдай одну markdown-таблицу: имя файла, контрагент, ИНН, номер, дата, сумма итого, срок оплаты, предмет одной строкой, цитата с суммой. Если поле отсутствует - пиши «не найдено», не угадывай. Ничего не комментируй до и после таблицы.
Последняя фраза важнее, чем выглядит: без неё половина ответа уйдёт на вводные и выводы, а таблицу придётся выковыривать пинцетом. Когда вместо текста в чате нужен готовый файл, включай артефакты, где ответ превращается в документ.
Как поймать модель на вранье в цифрах?
Тремя слоями: цитата рядом с каждой цифрой, обратная сверка выборкой и отдельный статус для того, что модель не нашла. По отдельности ни один не спасает. Ошибка в сумме или дате сжирает весь выигрыш по времени и ещё занимает сверху, так что проверочный шаг из процесса не выкидывается ни при каких сроках.
Первый слой - цитата. Каждое числовое поле идёт с дословным фрагментом из документа: берёшь фрагмент, жмёшь Ctrl+F в исходнике и смотришь, есть ли он там. При пустом поиске на переразбор уходит вся строка целиком, включая поля, которые выглядят приличными.
Дальше идёт выборочная сверка. Возьми из готового реестра три-четыре строки наугад и проверь их полностью, руками, по исходникам. Случайность тут принципиальна: первые документы модель почти всегда разбирает аккуратнее последних, и проверка по порядку покажет тебе самое чистое. Если выборка сходится, реестр можно пускать в работу. Одна найденная ошибка отправляет всю партию на переразбор меньшим объёмом.
Замыкает всё явный статус «не найдено»: отдельная колонка и отдельная куча в конце - вот эти семь документов не отдали срок оплаты, смотрю глазами. Граница между машинной частью и ручной обязана торчать на виду, в пустой ячейке она теряется на первой же неделе.
Отдельно про места, где данные плывут чаще всего:
- Числа с пробелами и неразрывными пробелами.
1 250 000иногда читается как два числа. Итоговые суммы проверяй первыми. - Даты в разных форматах. 03.04.2026 в одном документе и 2026-04-03 в другом - модель приведёт к одному виду и запросто перепутает месяц с днём. Требуй формат явно: ГГГГ-ММ-ДД.
- НДС. Сумма с НДС, без НДС и сам НДС лежат в счёте рядом, и модель охотно хватает соседнее число. Всегда три отдельных поля, всегда с цитатами.
- Похожие номера договоров. 12/03-А и 12/03-Б в одной партии дают гарантированную кашу. Разводи по разным заходам.
- Приложения и допсоглашения. Основной договор говорит одно, допник его отменяет. Грузи их вместе, иначе получишь стройный разбор несуществующей реальности.
Скан прислали - и что теперь?
Скан сначала идёт на распознавание и только потом в нейросеть. Да, современные модели читают картинку глазами и делают это бодро. Но на плотном скане с печатями и рукописными пометками точность по цифрам падает ровно там, где она тебе нужна. Порядок такой: получил текстовый слой, вычитал его на битые цифры, отдал в разбор.
Инструменты тут скучные и почти все бесплатные: Adobe Acrobat накладывает текстовый слой на PDF, Google Диск распознаёт файл при открытии в Google Документах, а на локальной машине ту же работу делает Tesseract. Выбирают обычно по одному критерию: можно ли этот документ вообще выкладывать в облако.
Что вычитать в распознанном тексте до разбора:
- цифры в суммах и номерах - самое частое место ошибки,
0иO,1иl,5иS; - номера пунктов: сбилась нумерация - поедет весь разбор по пунктам;
- колонки в таблицах - при распознавании они любят схлопываться в одну строку;
- переносы слов на границе страниц.
Сканы приходят регулярно и в одном формате - отдай этот шаг скрипту: на автоматизации рутины через Python такие задачи закрываются один раз и дальше работают без тебя. Разовый пакет из десяти сканов проще прогнать руками.
А плохую фотографию лечит только пересъёмка. Промпт тут бессилен, хоть ты его золотом покрой. Контрагент прислал снимок под углом, с бликом от лампы поперёк суммы - проси нормальный файл и не стесняйся. Разбор кривого снимка звучит уверенно и при этом врёт, а уверенная ошибка дороже пустого ответа.
Как получить выжимку, с которой принимают решение?
Помогает промпт, который отвечает на конкретный вопрос конкретного читателя. В него закладываешь роль этого читателя, решение, которое он принимает, и жёсткий объём. «Сожми до одной страницы» работает лучше «сделай краткое содержание», потому что появляется бюджет, внутри которого модель вынуждена выбирать главное.
Рабочая заготовка под договор или длинный регламент:
Ты готовишь документ для собственника, который решает, подписывать или нет, и у него есть 3 минуты. Выдай: 1) суть сделки одним абзацем; 2) что мы обязаны и в какие сроки - списком; 3) что обязан контрагент - списком; 4) пять мест, где для нас есть риск, каждое с цитатой и номером пункта; 5) три вопроса, которые надо задать до подписания. Объём - не больше одной страницы. Юридические термины переводи на человеческий.
Для счетов и первички заготовка выглядит иначе: вся ценность сидит в полях и сверке. Техзадание требует третьего варианта, где главное - список того, чего в документе нет. Приём везде один: сначала назови, кто читает, какое решение принимает и в каком объёме, и только потом говори, что достать.
Для договоров я расписал эту механику подробно, вплоть до светофора рисков и второго прохода на поиск отсутствующих пунктов: как вычитывать договор по пунктам. Отсюда стоит забрать одну мысль: пустоту модель не видит. Отсутствующего пункта об ответственности за просрочку для неё просто не существует, поэтому список того, что в договоре должно быть, пишешь ты, и по нему модель идёт отдельным проходом.
Чат, проект или скрипт?
Разовую пачку разбирай в обычном чате с загрузкой файлов. Поток одинаковых документов каждую неделю требует либо проекта с сохранённым контекстом, либо скрипта - иначе ты будешь вставлять один и тот же промпт до конца своих дней.
| Способ | Что закрывает | Когда не подходит |
|---|---|---|
| Чат с загрузкой файлов | Разовая пачка на 5-20 документов, быстрый разбор | Поток каждый день: промпт вставляешь заново каждый раз |
| Проект с сохранённым контекстом | Повторяющийся формат: свои поля, свои стоп-слова, свой шаблон карточки | Файлы, которые нельзя выкладывать в облако |
| Локальная модель на своей машине | Документы с коммерческой тайной и персональными данными | Сложные сканы и длинные документы: там облако сильно впереди |
| Скрипт на Python плюс API | Сотни однотипных файлов в месяц, стабильный вывод в таблицу | Разовая задача: настройка дороже разбора руками |
| Агент с доступом к папке | Разбор по мере поступления, раскладка по папкам | Всё, где цена ошибки высокая и нужен человек в цикле |
| Встроенные функции офисных пакетов | Быстрая выжимка по открытому файлу | Сравнить десять файлов между собой - даже не начинай |
Начинай с первой строки таблицы. Разбери руками две-три пачки, посмотри, где ломается именно у тебя, и только потом автоматизируй - иначе закрепишь в скрипте кривой процесс и будешь воевать с собственным кодом. Как выбирать первую задачу под автоматизацию, я разбирал в материале про то, с каких задач начинать; с документами всё работает один в один.
А если задача звучит как «зайти на портал, скачать акты, разложить» - ты упираешься уже в руки в браузере. Что там реально получается, а что нет, смотри в статье про браузерное расширение и его границы.
Что нельзя грузить в облако?
Три категории уходят туда только с отдельным решением: персональные данные третьих лиц, коммерческая тайна и всё, что связано обязательством о конфиденциальности с контрагентом. Остальное упирается в настройки аккаунта и здравый смысл. Большую часть случаев закрывает обезличивание.
Перед загрузкой замени в документе:
- ФИО - на «Заказчик», «Исполнитель», «Сотрудник-1»;
- паспортные данные и адреса - на метку «[персональные данные]»;
- номера счетов и карт - на «Счёт-А», «Счёт-Б»;
- название компании - на «Контрагент-1», если оно само по себе чувствительно.
Смысл документа от этого не страдает. Риск в договоре виден по конструкции пункта, фамилия подписанта тут не решает ничего. Суммы обычно оставляй, если они не составляют тайну сами по себе.
Дальше идут настройки аккаунта: проверь, используются ли твои данные для обучения, и выключи, если тариф позволяет. Для бизнеса это чаще всего вопрос типа подписки.
Отдельно стоит договориться внутри команды. Когда документы разбирают несколько человек, «что можно грузить» надо записать, иначе каждый трактует по-своему, и однажды кто-нибудь загрузит в чат скан паспорта. Такие правила держи там же, где остальной контекст дела - логика в разборе про то, как собрать базу знаний для нейросети.
Ещё вариант: чувствительный документ иногда проще отдать локальной модели, где качество ниже, зато файл никуда не уезжает. Что из бесплатного и локального реально тянет такие задачи - в обзоре бесплатных нейросетей и их честных ограничений.
Как не бросить это через неделю?
Разовый героический разбор пачки через месяц не значит ничего. Я пробовал по-геройски: копил квартал, потом садился на весь день. К третьему часу чтение превращается в листание, и разница между «прочитал» и «пролистал» вылезает через полгода в самом неудобном месте.
Держится всё на ритме: время разбора, папка и форма реестра остаются одними и теми же из недели в неделю.
- Одна входящая папка. Всё, что пришло за неделю, падает туда, минуя почту, чат и стол бухгалтера.
- День разбора на неделе. Понедельник, утро. Прогнал партию - получил реестр.
- Реестр в одном месте. Таблица с колонкой «что делать» и колонкой «срок». Новые строки дописываешь снизу, старые не стираешь.
- Разбор папки после реестра. Оплачено, ждёт подписи, спорное, архив. Файл физически переезжает в свою папку, и входящая снова пустая.
- Отдельная куча «глазами». Всё, что модель пометила как «не найдено» или что упало в спорное.
Такой реестр хорошо ложится рядом с ежедневной сводкой по делу: как собрать одну страницу, на которую смотришь каждое утро, я показывал в материале про ежедневную сводку. Документы дают для неё ещё один источник.
Когда ритм проживёт месяц-полтора и форма карточки перестанет меняться, оформляй разбор как участок цифрового сотрудника: свой регламент, свои поля, свои стоп-правила. Чем это отличается от «промпта в блокноте» - в статье про цифрового сотрудника.
Где ломается и как чинить?
Когда результат поплыл, первым делом уменьшай объём входа, а переписывание промпта отложи: чаще всего модель просто получила слишком много за один заход, и никакая формулировка этого не вытянет.
| Симптом | Причина | Что делать |
|---|---|---|
| Данные из разных файлов смешались | Слишком большая партия, нет разделителей | Партии по 5 файлов, явная строка === ФАЙЛ: === перед каждым |
| Цитаты не находятся поиском по файлу | Модель достроила текст по смыслу | Переразобрать документ отдельно, уменьшить объём, потребовать номер страницы |
| К концу таблицы строки становятся куцыми | Длинный вывод, модель экономит | Разбить на два захода по половине партии |
| Суммы не сходятся с итогом | Число с пробелами или путаница с НДС | Три отдельных поля по НДС, проверка итогов руками |
| Ответ вежливый, но пустой | Промпт без закрытого списка полей | Задать поля и метку «не найдено» |
| Модель «не видит» пункт, который в договоре есть | Пункт в приложении, которое не загрузили | Грузить основной документ вместе с приложениями и допниками |
| Разбор скана уверенный, но неверный | Плохое распознавание, битые цифры | Вычитать текстовый слой до разбора, при плохом качестве - пересъёмка |
Отдельный случай - когда не помогло ничего и третий заход снова выдаёт кашу. Почти всегда это значит, что задача не текстовая. Смета с объединёнными ячейками, чертёж, отсканированная таблица на сорок колонок требуют другого маршрута: сначала вытащи данные в CSV, потом работай с цифрами как с цифрами. Бесконечная полировка промпта на задаче, которая промптом не решается, - самый дорогой способ угробить вечер, и проверял я это на себе не один раз.
Кто за что отвечает - ты или машина?
Машина берёт на себя выносливость: пройти все документы подряд, вытащить одинаковые поля, не устать на сороковом файле. За тобой остаются решение, контекст и ответственность. Граница проходит по цене ошибки: где ошибка стоит дорого, там работает человек, каким бы простым ни выглядел шаг.
| Этап | Кто делает | Почему так |
|---|---|---|
| Сортировка файлов по типам | Человек | Требует взгляда на файл и понимания, что это за документ |
| Распознавание сканов | Инструмент, вычитка - человек | Битую цифру видит только глаз |
| Обезличивание | Человек или шаблон замен | Что чувствительно в этом документе, знаешь ты |
| Извлечение полей в карточку | Модель | Механическая работа на объёме |
| Проверка цитат | Человек, выборкой | Единственная защита от выдуманной строки |
| Сведение в реестр | Модель, сверка - человек | На сведении легче всего потерять строку |
| Оценка рисков и спорных мест | Человек, при необходимости юрист | Правовая оценка и практика |
| Решение и подпись | Человек | Ответственность не делегируется |
Что ты с этого имеешь: перестаёшь читать сорок PDF по диагонали в пятницу вечером и смотришь одну таблицу на сорок строк, где уже видно, куда идти внимательно. Что ещё из рутины закрывается по той же схеме - в подборке семи задач для ИИ-ассистента в малом бизнесе, а общая карта процессов - в карте возможностей автоматизации.
Держи в голове одну вещь: скорость разбора вырастет быстро, а цена незамеченной ошибки в сумме или сроке не упадёт никогда. Поэтому проверочный слой - цитаты, выборка, куча «глазами» - не убирай даже тогда, когда покажется, что всё давно летает само.
А у вас что чаще приходит - нормальные текстовые PDF или сканы с печатями и подписью поперёк суммы? У меня второе, и я до сих пор ругаюсь каждый раз. Кто уже поставил разбор на конвейер - на чём споткнулись?
Источники
- Документация Anthropic - как формулировать задачу, задавать структуру вывода и работать с загруженными файлами
- Справочный центр Claude - загрузка документов, проекты, ограничения по размеру файлов
- Центр приватности Anthropic - что происходит с загруженными данными и как настраивается хранение
- Справочный центр OpenAI - работа с файлами и настройки использования данных в ChatGPT
- Справка Adobe Acrobat - распознавание текста в PDF и создание текстового слоя поверх скана
- Google Document AI - документация по промышленному извлечению данных из документов
- Справка Google Диска - распознавание текста при открытии PDF и изображений в Google Документах
- Tesseract OCR - открытый движок распознавания для локальной обработки сканов
- Документация pypdf - программное извлечение текста из PDF при пакетной обработке
- Федеральный закон № 152-ФЗ «О персональных данных» - что считается персональными данными и почему документы стоит обезличивать
- Справка Microsoft - импорт данных, работа с таблицами и форматами файлов в Office
Частые вопросы
Какой формат файла нейросеть читает лучше всего?
Текстовый PDF, DOCX и обычный txt - там модель видит символы напрямую. Скан и фотография сначала требуют распознавания, иначе разбор строится на догадках.
Можно ли загрузить сразу тридцать документов?
Технически иногда да, по качеству - нет. Разбирай партиями по 5-10 файлов с одинаковым форматом карточки, иначе модель начнёт смешивать данные из разных документов.
Как проверить, что модель не выдумала сумму?
Требуй рядом с каждой цифрой дословную цитату и номер страницы, потом ищи эту цитату поиском по исходному файлу. Не нашлась - строка недостоверна целиком.
Нужно ли обезличивать документы перед загрузкой?
Персональные данные, реквизиты счетов и коммерческую тайну лучше заменить на метки вида «Клиент-1», «Счёт-А». Смысл документа от этого не меняется, а риск утечки падает.
Заменит ли это юриста или бухгалтера?
Нет. Снимается механическая часть - прочитать всё и разметить, а оценка, решение и подпись остаются на человеке, который за них отвечает.