Сегодня мы выпускаем функцию обнаружения полей форм в 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].








