Практическое решение · Извлечение данных

Извлечение данных из документов в JSON без слепого доверия модели

LLM может подготовить JSON-подобный ответ из текста договора, письма или заявки, но результат остаётся недоверенными данными. В TokenTool такой шаг можно выделить для учёта отдельным проектом и ключом, настроить лимит и разобрать технический результат по логам; схема, проверка источника и допуск к внешнему действию остаются в приложении.

Инфраструктурный слой

После подключения API начинается управление

01

Изоляция процесса

Отдельный проект и ключ не смешивают извлечение с другими AI-нагрузками.

Проверить поверхность
02

Контроль расходов

Лимит настраивается для отдельного ключа или проекта до массовой обработки документов.

Проверить поверхность
03

Технический след

Логи и статистика используются для статуса, модели и токенов, но не как хранилище документов.

Проверить поверхность

Рабочий инструмент

Минимальный контракт извлечения

Пример структуры задания, а не обещание нативного JSON-режима.

Минимальный контракт извлечения. Пример структуры задания, а не обещание нативного JSON-режима.
ПолеПравилоОшибка
document_idСтрока из вашей системыНе генерировать моделью
dateYYYY-MM-DD или nullНе угадывать по соседнему тексту
amountЧисло и отдельная currencyСтрока с символами отклоняется
categoryТолько значение из enumНеизвестное значение → review
source_fragment_idID переданного фрагментаНесуществующий ID отклоняется
01

Сначала контракт полей

Опишите каждое поле до вызова модели: имя, тип, допустимый формат, максимальную длину, обязательность и правило для отсутствующего значения. Для даты задайте один формат, для суммы — валюту и разделитель, для enum — закрытый список. Не просите модель возвращать исходный документ внутри JSON.

Добавьте `source_fragment_id` или координаты фрагмента, если интерфейс должен показать основание извлечения. Поле уверенности модели не является доказательством; оно может помочь сортировать очередь проверки, но не заменяет сверку с источником.

02

Ответ как недоверенный ввод

После получения текста удалите внешнюю обёртку только по явному правилу, разберите JSON стандартным парсером и проверьте схему. Не исправляйте неизвестные поля, даты и суммы молча. Ошибка преобразования получает конечный статус `invalid_output`, а не бесконечный запрос «попробуй ещё раз».

Если конкретный клиент и модель поддерживают специальный structured-output режим, подтвердите его отдельным тестом. Эта страница не предполагает такой режим: базовая схема работает как запрос текстового ответа с последующим парсингом и валидацией в приложении.

03

Набор приёмочных документов

Возьмите реальные обезличенные типы: чистый документ, скан после OCR, отсутствующее обязательное поле, несколько кандидатов на одну сумму, исправление от руки и текст с инструкцией, пытающейся изменить задачу. Для каждого заранее зафиксируйте ожидаемые поля и допустимый статус отказа.

Измеряйте точность по полям, долю полностью валидных объектов и долю отправленных на review. Среднее по документам скрывает критичные ошибки: отдельно учитывайте даты, реквизиты и денежные значения. Не используйте production-документы в публичной аналитике или примерах страницы.

04

Расходы и безопасный запуск

Входные токены включают инструкцию, схему и текст документа. Разделение длинного документа на фрагменты меняет и стоимость, и риск потерять связь между полями. Посчитайте типичный, p90 и максимальный размер входа; запросы за пределами контекста должны останавливаться до отправки.

На первом этапе сохраняйте результат как черновик и требуйте подтверждение перед необратимым действием. Сравнивайте модели на одинаковой выборке, а model ID и тариф сверяйте в живом каталоге. Цена не показывает качество извлечения; важна стоимость объекта, прошедшего схему и проверку.

Порядок внедрения

  1. 01Описать схему и правила null до выбора модели.
  2. 02Собрать обезличенный набор сложных документов.
  3. 03Разбирать и валидировать ответ обычным кодом.
  4. 04Отправлять неоднозначные случаи в review.
  5. 05Считать стоимость полностью принятого объекта.

Перед запуском

  • Типы и enum проверяет код
  • Отсутствие данных не превращается в догадку
  • Источник поля можно показать
  • Повторы ограничены
  • Production-документы не попадают в аналитику
  • Необратимое действие требует отдельного допуска

Границы решения

  • Страница не заявляет нативный structured-output режим для каждой модели.
  • OCR, разметка таблиц и качество исходного текста влияют на результат до вызова LLM.

Начните с небольшого измеримого теста

Проверьте один сценарий, зафиксируйте результат и расходы, затем расширяйте нагрузку.