Ава Ся, 16 октября 2025 г. Поделиться:
Представьте, что вашему приложению необходимо обработать данные из огромного 1000-страничного контракта или 1-гигабайтного инженерного отчета, отсканированного в один PDF-файл. Загрузка завершена, но теперь этап анализа останавливает все, блокируя ваше приложение, замедляя работу пользователей и создавая затор в очереди обработки.
Разработчики, работающие с реальными документами, прекрасно знакомы с этой проблемой. Большие файлы могут легко перегрузить синхронные рабочие процессы, вызывая тайм-ауты и узкие места, которые распространяются по всему конвейеру обработки данных.
Именно поэтому мы разработали API Parse Jobs для системы Agentic Document Extraction (ADE) от LandingAI. Это специально созданный асинхронный API, разработанный для обработки больших и сложных документов без ущерба для пропускной способности или надежности.
Вместо ожидания завершения одного длительного вызова, вы просто отправляете документ, немедленно получаете job_id, а затем асинхронно опрашиваете статус задания, пока не будут готовы результаты. По умолчанию API использует нашу последнюю модель парсинга (DPT-2), но вы можете зафиксировать конкретный снимок модели для обеспечения воспроизводимости.
API Parse Jobs — идеальное решение для:
- Анализ больших PDF-файлов (до 1000 страниц).
- Легко справляется с обработкой больших объемов пакетной обработки данных.
- Защита ваших данных с помощью корпоративных решений с нулевым сроком хранения данных (ZDR).
Полный алгоритм работы можно найти в репозитории GitHub: Parse_Jobs_API_for_Large_Files.
Что такое синтаксический анализ на основе заданий?
Чтобы лучше понять, чем API ADE Parse Jobs отличается от нашего стандартного подхода к парсингу, давайте воспользуемся аналогией с кофейней.
- Стандартная схема: вы подходите к стойке, делаете заказ и ждете, пока бариста не принесет вам напиток. Больше ничего делать не можете. Если длинная очередь или сложный заказ, вам остается только ждать.
- Анализ задач: Вы делаете заказ у стойки, и вам дают пейджер. Теперь вы можете сесть или поболтать с другом. Когда ваш кофе готов, пейджер вибрирует, и вы идете за ним.
API ADE Parse Jobs работает как система пейджера. Вы отправляете задание (ваш «заказ»), и API немедленно предоставляет вам job_id (ваш «пейджер»). Теперь ваше приложение может заниматься другими делами. Вы можете использовать job_id для проверки статуса вашего запроса позже и получения результатов, когда он будет «готов».
Зачем это вам нужно?
Стандартный API ADE Parse отлично подходит для небольших файлов. Но когда вы имеете дело с техническим руководством на 800 страниц или отсканированным соглашением размером 500 МБ, используйте API ADE Parse Jobs для обработки таких ресурсоемких задач.
Вот краткий обзор различий между нашими двумя API для анализа данных.
| Особенность | Анализ API | API ADE Parse Jobs |
| Максимальный размер файла | 50 МБ | 1 ГБ |
| Максимальное количество страниц | 50 | 1000 |
| Ответ | Мгновенные результаты | Идентификатор вакансии (немедленно) |
| Лучше всего подходит для | Небольшие документы | Большие документы |
Как использовать API ADE Parse Jobs
Стандартный рабочий процесс состоит из трех простых шагов: отправка , мониторинг и получение .
Если вам интересно узнать, как работает весь процесс, ознакомьтесь с полным описанием рабочего процесса на GitHub: Parse_Jobs_API_for_Large_Files.
Шаг 1: Отправьте документ
Сначала вы отправляете свой документ в API. Это POST-запрос к конечной точке /v1/ade/parse/jobs. Ключевой момент здесь в том, что API не заставляет вас ждать завершения обработки. Вместо этого он немедленно принимает задание и возвращает уникальный job_id.
Крайне важно сохранить этот job_id , так как он понадобится вам на следующих этапах.
import requests import json headers = { 'Authorization': 'Bearer YOUR_API_KEY' } url = 'https://api.va.landing.ai/v1/ade/parse/jobs' # Загрузка документа document = open('your_document.pdf', 'rb') files = {'document': document} response = requests.post(url, files=files, headers=headers) print(response.json()) # В ответе будет указан job_id
Шаг 2: Мониторинг статуса задания
Теперь, когда у вас есть job_id, вы можете периодически проверять его статус. Это делается путем отправки GET-запроса к конечной точке /v1/ade/parse/jobs/{job_id}. Рекомендуется опрашивать ее каждые 15-30 секунд.
В ответе будет указан статус задания (например, в обработке, выполнено или не выполнено) и его прогресс в процентах.
url = f'https://api.va.landing.ai/v1/ade/parse/jobs/{job_id}' headers = {'Authorization': f'Bearer {api_key}'} try: response = requests.get(url, headers=headers) if response.status_code == 200: data = response.json() status = data.get('status') progress = data.get('progress', 0) * 100 print(f»Status: {status} | Progress: {progress:.0f}%») return data else: print (f» ❌ Error checking status: {response.status_code} «) return None except Exception as e: print (f» ❌ Error: {e} «) return None
Шаг 3: Получение результатов
После завершения задания настает время получить обработанные данные. API предоставляет результаты двумя способами для оптимизации производительности:
- Для небольших файлов (< 1 МБ): итоговое содержимое в формате Markdown включается непосредственно в объект ответа о состоянии, внутри поля данных.
- Для больших файлов (≥ 1 МБ): в ответе будет содержаться временный, защищенный output_url. Вам просто нужно отправить GET-запрос на этот URL, чтобы загрузить JSON-файл с результатами.
Представьте, что вы получаете почту. Небольшое письмо помещается в ваш почтовый ящик (поле данных), а для большой посылки вы получаете квитанцию о получении (output_url).
Вот пример запроса:
import requests headers = { 'Authorization': 'Bearer YOUR_API_KEY' } url = f'https://api.va.landing.ai/v1/ade/parse/jobs/{jobId}' response = requests.get(url, headers=headers) response_data = response.json() # Проверка завершения задания if response_data.get('status') == 'completed': # Если размер файла <= 1 МБ, содержимое Markdown доступно в data if 'data' in response_data and response_data['data'].get('markdown'): markdown_content = response_data['data']['markdown'] # Если размер файла > 1 МБ, вместо него доступен output_url elif response_data.get('output_url'): print(«Используйте файл Markdown, указанный в `output_url`.») else: print(«Нет содержимого Markdown или «`output_url` найден в ответе на завершенное задание.»» else: print(f»nСтатус задания: {response_data.get('status', 'unknown')}.»»
Нулевое хранение данных (ZDR)
Для организаций, работающих в условиях строгих требований безопасности и соответствия нормативным требованиям, включая сценарии HIPAA/BAA, ADE предлагает функцию нулевого хранения данных (ZDR).
Если для вашей учетной записи включена функция ZDR, при использовании API ADE Parse Jobs необходимо указать следующие параметры:
- document_url: Ваш документ должен быть доступен по общедоступному URL-адресу, например, по предварительно подписанному URL-адресу из вашего облачного хранилища, такого как S3, Azure Blob или GCS. Это позволит ADE получать документ непосредственно из вашего хранилища.
- output_save_url: Для защиты конфиденциальных данных ADE требует предварительно подписанный URL-адрес вывода из вашего облачного хранилища. Этот временный, защищенный URL-адрес позволяет API записывать обработанные результаты непосредственно в ваше хранилище, поэтому LandingAI никогда не сохраняет и не возвращает обработанный контент.
Если у вас включена функция ZDR и указаны эти параметры, системы LandingAI получат документ, обработают его и загрузят конечный результат непосредственно в ваше облачное хранилище. Это избавляет вас от необходимости самостоятельно проверять статус или обрабатывать загрузку.
Вот пример запроса:
import requests import json headers = { 'Authorization': 'Bearer YOUR_API_KEY' } url = 'https://api.va.landing.ai/v1/ade/parse/jobs' # Подготовка полезной нагрузки запроса output_save_url = generate_presigned_url(…) files = {'document_url': 'https://…', 'output_save_url': output_save_url} response = requests.post(url, files=files, headers=headers) print(response.json())
Заключение
С API ADE Parse Jobs от LandingAI вам не нужно управлять параллелизмом или оркестрацией заданий — это делает сервер. Каждый запрос документа выполняется асинхронно, что позволяет вашим приложениям легко масштабироваться, сохраняя при этом высокую скорость отклика. Никаких пулов потоков, никаких очередей сообщений — только чистая и надежная асинхронная обработка, полностью выполняемая инфраструктурой LandingAI в следующем рабочем процессе:
- Отправьте документ на анализ — вы немедленно получите идентификатор задания.
- Отслеживайте статус задания до тех пор, пока оно не будет отмечено как выполненное.
- Получите результат анализа — либо в виде встроенного Markdown, либо через output_url для файлов большего размера.
А при включении функции нулевого хранения данных (ZDR) вы можете обеспечить конфиденциальность и соответствие нормативным требованиям корпоративного уровня, сохраняя при этом удобство работы для разработчиков. API ADE Parse Jobs позволяет масштабировать систему безопасно, эффективно и без необходимости самостоятельной настройки параллельного выполнения.
Готовы начать? Ознакомьтесь со справочником API и примерами использования из нашего репозитория GitHub. Для получения индивидуальных ценовых предложений и решений по развертыванию, адаптированных к потребностям вашего предприятия, не стесняйтесь обращаться в отдел корпоративных продаж.
Содержание
Источник: landing.ai



























