# Одно задание поставщику OCR

Подготовлено 18.10.2026. Шаблон задания для демонстрации.

## Цель

На одной синтетической товарной накладной проверить путь «изображение → строки и реквизиты → пригодный для учётной системы результат». Это первичная демонстрация, не оценка средней точности, не поддержка всех форм и не основание выбора SDK.

## Вход и честные условия

- `invoice.png` и `invoice.pdf` — один и тот же документ, не два независимых примера. PDF содержит только изображение; текстового слоя нет. Использовать один согласованный формат, второй проверить отдельно как совместимость входа.
- `invoice.txt` — доступная человеку расшифровка, не вход OCR.
- `expected.json` зафиксирован до любых запусков и ответов. Это эталон разметки, не выгрузка продукта. Для демонстрации он может быть раскрыт, но тогда нельзя называть результат слепым тестом.
- Нет ФИО, адресов, подписей, контактных, банковских и налоговых идентификаторов; участники явно обозначены как учебные, не организации.
- Форма произвольная, **не ТОРГ-12, не УПД и не счёт-фактура**. Их поддержку нужно подтвердить отдельной документацией и отдельными образцами.

## Что запросить одним ответом

1. Точное название SDK, версия, модули лицензии, ОС/архитектура и системные зависимости. Разделить штатную возможность, конфигурацию и дополнительную разработку.
2. Команду или минимальный пример интеграции, **фактически использованный** вход, исходный результат SDK без исправлений и журнал. Если был адаптер, приложить отдельно его код и преобразованный результат. Обязательного нативного JSON не требуем: подходит документированное представление с воспроизводимым отображением полей.
3. Номер и дату документа; названия учебных участников; валюту; отметку «Без НДС»; общий итог; четыре строки с артикулом, названием, единицей, количеством, ценой и суммой.
4. Различить отсутствующее поле, низкую уверенность и ошибку извлечения. Для отсутствующих в образце ИНН, КПП, счёта, адреса, ФИО, подписи, телефона, номера заказа — `null`/пропуск с описанной семантикой. Не достраивать правдоподобные реквизиты.
5. Пояснить доступность координат/фрагментов-оснований, оценки уверенности и маршрута ручной проверки. Если нет — прямо указать, как оператор сопоставляет спорную строку с исходником.
6. Для локального сценария отдельно показать обработку без исходящего трафика, журналы соединений, требования активации и обновлений. Различить передачу документа/телеметрию/лицензирование; автономность OCR не означает автономность всего жизненного цикла.
7. Дать ссылки или приложенные разделы документации именно этой версии: API, форматы входа/выхода, ограничения, ошибки, развёртывание. Закрытая поставляемая справка не равна открытому онлайн-руководству.
8. Предложение без заказа: что лицензируется (ядра/устройства/страницы/срок/среда), ограничения разработки и прода, офлайн-активация, обновления, поддержка, стоимость адаптера и пилота, валюта/налоги, срок действия цены. Отсутствующий публичный прайс не считать бесплатностью.

## Предварительная приёмка демонстрации

| Что сверить | Предварительный критерий | Как трактовать отказ |
|---|---|---|
| Строки | Ровно 4, исходный порядок, ни объединений, ни дубликатов | Несовместимость текущей конфигурации с этим входом; не оценка всего SDK |
| Артикулы | `000042`, `000043`, `TEST-007`, `TEST-012` как строки | Потеря ведущих нулей недопустима для учётного импорта |
| Одноимённые товары | Первые две строки остаются раздельными | Не объединять по совпадению наименования |
| Перенос | Две визуальные строки названия образуют одну товарную позицию | Сохранить ошибку в сыром выводе |
| Числа | Десятичная запятая во входе; количества/деньги совпадают с эталоном после документированного преобразования | Не округлять скрыто и не подменять OCR арифметическим восстановлением |
| Суммы | `3×1250=3750`; `2×199.90=399.80`; `0.75×2400=1800`; `12×19.50=234`; итог `6183.80` | Проверка арифметики отдельно от качества извлечения |
| Отсутствующие поля | Нет вымышленных значений | Любая догадка — на ручную проверку, не в учётную систему |
| Аудит | Сырой вывод, настройка, версия и адаптер сохранены раздельно | Без этого демонстрация невоспроизводима |

Нормализация допускает пробелы-разделители тысяч, `,` → `.`, ISO-дату и объединение визуального переноса наименования. Нельзя менять артикулы, единицы и строки, молча исправлять цену/сумму или заполнять пропуски из эталона. Общая «точность в процентах» по одному документу не рассчитывается.

## Где заканчивается это задание

После демонстрации — отдельный обезличенный набор разных поставщиков, форм, качества скана и многостраничных документов; до запуска зафиксировать критерии и бюджет. Один чистый синтетический образец не проверяет производительность, устойчивость, стоимость эксплуатации и юридическую пригодность. Обещаний продукта в этом документе нет.
