Этап 2 — Структурированное извлечение
2.5 Этап 2 — Структурированное извлечение
На этом этапе документ преобразуется в структурированные поля чека. Публичный контракт — это набор полей и поведение этапа; провайдеры моделей, текст промптов, политика маршрутизации, бюджеты токенов и условия повторных попыток управляются внутренним операционным слоем.
Граница маршрутизации моделей
Yumo Yumo выполняет структурированное извлечение за модельно-независимым интерфейсом. Операционная политика может выбирать подходящий движок на основе языка, сложности документа, состояния здоровья и сигналов качества. Порядок и резервное поведение этой политики остаются приватными.
Структурированный результат — размеченный простой текст
Модель возвращает размеченные текстовые поля, по одному полю на строку, а не JSON-объект. JSON-вывод языковых моделей порождает собственный класс ошибок разбора — неэкранированные управляющие символы, незакрытые скобки, лишние запятые — где один искажённый символ делает недействительным весь ответ. Размеченные строки деградируют плавно: отсутствующая или искажённая строка оставляет пустым одно поле, тогда как все остальные поля по-прежнему разбираются.
Поля заголовка приходят внутри блока с разделителями:
document_type: receipt
merchant_legal_name: MIGROS TICARET A.S.
merchant_display_name: MIGROS
receipt_date: 2026-05-17
currency: TRY
total_paid: 276.71
total_vat: 42.21
payment_method: visa
...Позиции чека приходят в виде таблицы с разделителем-вертикальной чертой с фиксированным порядком столбцов:
LINE | NAME | BRAND | QTY | UNIT | UNIT_PRICE | TOTAL | VAT_RATE
1 | SUT 1L | PINAR | 2 | adet | 23.50 | 47.00 | 0.01
2 | ...Набор полей охватывает идентичность торговца (юридическое название, отображаемое название, распознанный бренд, налоговый идентификатор, части адреса), метаданные документа (тип, дата, время, номер чека, страна, валюта), итоги и налог, способ оплаты и доказательство оплаты, а также таблицу позиций.
Защитный разбор
Парсер обрабатывает каждое поле независимо: отсутствующее поле становится null, искажённое значение становится null, а повреждённая строка таблицы позиций логируется и пропускается. Разбор никогда не выбрасывает исключение — конвейер продолжает работу с теми полями, которые удалось восстановить, а слой правил (2.6) сверяет итоги, дату, валюту, позиции и налоговые поля с текстом чека.
Обработка согласованности
Если извлечение получает низкий сигнал качества или слой правил обнаруживает несоответствие, конвейер может отправить результат на проверку или повторную обработку. Выбор пути управляется операционными параметрами.