Поиск заполняемых полей в любой форме

Источник: Datalab•

Поиск заполняемых полей в любой форме

Обнаружение полей форм находит 87% полей в ходе наших тестов со средней скоростью 1,1 с на страницу, определяя тип, рамку и метку каждого поля.

Сегодня мы выпускаем функцию обнаружения полей форм в Datalab API. POST /api/v1/form-fields принимает PDF-файл или изображение и возвращает все места на каждой странице, где человек должен писать, ставить галочку или подписываться. Каждое поле возвращается с типом, ограничивающей рамкой и печатной меткой, которая указывает человеку, что там должно находиться. Конечная точка считывает изображение страницы, поэтому сканированный документ или обычный PDF работают так же, как и заполняемые.

Вот как это выглядит на трех публичных формах. Наведите курсор на рамку, чтобы узнать ее строку, или переключитесь на JSON, чтобы увидеть страницу в том виде, в каком ее возвращает API:

  • Текст 32
  • Флажок / переключатель 44
  • Дата 2
  • Имя / контакт 4
  • Подпись / инициалы 1

83 поля

Почему формы сложно автоматизировать

Заполняемый PDF хранит свои поля, но их названия часто не имеют смысла для человека. В форме Form 1040 за 2025 год поля названы следующим образом: topmostSubform[0].Page1[0].f1_14[0]. А многие формы, попадающие в рабочий процесс, вообще не являются заполняемыми: это сканы, PDF-файлы, экспортированные из Word, или заполняемые формы, которые кто-то распечатал, подписал и отсканировал обратно.

Даже когда форма заполняема, ее автор сам решает, какие пустые места становятся полями. В форме IRS Form 1040 нет заполняемого поля ни для одной из строк подписи, ни для дат рядом с ними.

Поэтому пустые места приходится искать на странице, и они бывают самых разных форм. В Form 1040 за 1913 год используются линии из точек и каждая сумма разделена на колонки долларов и центов. Форма DS-82 содержит вопросы с вариантами «да-нет» и парами квадратиков. Налоговые формы печатают отдельный квадратик для каждой цифры номера социального страхования. На страницах с инструкциями нет полей вообще, и детектор должен возвращать для них пустой результат.

Что вы получаете в ответ

Каждое поле имеет один из 12 типов:

Модель выбирает тип на основе печатной метки и макета вокруг пустого места. Вторая строка формы W-9 запрашивает название компании и возвращается как company (компания). Пустое место после «Date» (Дата) в строке подписи возвращается как date (дата).

Благодаря печатной метке у каждого поля вам не нужно самостоятельно сопоставлять рамку с близлежащим текстом. Поля перечислены в порядке чтения. Модель обучена возвращать только пустые поля.

Точность и скорость

В наших те тестах обнаружение полей форм находит 87% полей форм, а обработка средней страницы занимает 1,1 секунды. Страницы с большим количеством полей занимают больше времени, так как модель последовательно выписывает каждое поле.

Использование

Конечная точка работает так же, как и другие наши API: отправьте файл, затем опрашивайте request_check_url, пока статус не станет complete.

Это часть результата для страницы 1 формы W-9 в том виде, в каком его вернула модель:

bbox задается как [x0, y0, x1, y1] в долях от ширины и высоты страницы, с началом координат в верхнем левом углу. Чтобы разместить поле на странице PDF, умножьте на размер страницы в пунктах и инвертируйте ось y, поскольку координаты PDF начинаются в левом нижнем углу:

Вы можете отправить file_url вместо загрузки файла, ограничить страницы с помощью page_range (например, 0,5-10) или max_pages, а также передать webhook_url, чтобы получать уведомления по завершении запроса. Установите processing_location=eu, чтобы хранить изображения страниц в ЕС. Конечная точка принимает файлы PDF, изображения и другие поддерживаемые нами форматы документов, но не электронные таблицы.

Если модель не может прочитать страницу, эта страница возвращается с сообщением об ошибке и без полей, и плата за нее не взимается. Запрос завершается с ошибкой только в том случае, если сбой произошел на каждой странице.

Где это применяется

  • Рабочие процессы с подписями: находите поля для подписи, инициалов и даты в загруженном договоре или пакете документов для адаптации сотрудников и автоматически размещайте там теги для подписания.
  • Превращение обычных PDF в заполняемые: создавайте поле формы у каждого квадратика, используя тип для выбора текстового поля, флажка или поля для подписи.
  • Цифровизация бумажных форм: создавайте веб-форму на основе бумажной, используя печатные метки в качестве вопросов.
  • Перед заполнением форм: наша конечная точка /fill заполняет форму на основе имеющихся у вас данных. Обнаружение полей подсказывает, что запрашивает форма, чтобы вы могли сначала собрать эти значения.
  • Поиск пропущенных человеком полей: запустите функцию на заполненной форме, чтобы составить список того, что осталось незаполненным.

Цены

Обнаружение полей форм стоит 3 доллара за 1 000 страниц.

Если у вас есть формы, которые вызывают трудности у алгоритма, отправьте несколько штук на [email protected].

О чём эта статья

Ещё в разделе «Разработка ПО»

Все →

Ещё от Datalab