С 1 октября 2026 года вступает в силу федеральный закон о платформенной экономике, который вводит явные требования к сертификации изделий, конструктивно схожих с оружием, — в том числе ножей. Ozon начал проверки заранее и в один день заблокировал у одного из продавцов около 1000 SKU. Михаил, руководитель группы дизайна в Ozon Seller и одновременно селлер с шестилетним стажем, оказался перед выбором: несколько месяцев ручной загрузки сертификатов или автоматизация.

Проблема осложнялась форматом хранения документов. Сертификаты лежали на Google Drive не в виде PDF с машиночитаемым текстом, а как обычные JPEG-картинки. Это исключало простое извлечение данных и требовало распознавания изображений. Использовать облачную модель напрямую — например, просто отправлять картинки в Claude — не получилось бы: лимиты API закончились бы уже на 10–20 изображениях, а нужно было обработать около 500.

ЭтапИнструментРезультат
Распознавание JPEG-сертификатовOllama + qwen3-vl:8b (локально)Извлечение номера, дат, артикулов
Загрузка файлов сертификатовOzon API POST /v1/product/certificate/createФайлы загружены напрямую через multipart/form-data
Получение ID товаровOzon API POST /v2/product/listМаппинг offer_id → product_id
Привязка сертификатов к товарамOzon API POST /v1/product/certificate/bindСертификаты привязаны по product_id

Решением стала локальная vision-language модель qwen3-vl:8b, запущенная через Ollama. Ollama — это инструмент, позволяющий запускать большие языковые модели локально, без отправки данных во внешние сервисы и без расходования облачных токенов. Модель qwen3-vl:8b весит 6 ГБ и умеет анализировать изображения: извлекать текст, структурированные данные, реквизиты документов. Для задачи распознавания сертификатов автор выбрал версию на 8 миллиардов параметров, хотя, по его оценке, справились бы и более лёгкие варианты — 2b или 4b — с меньшим временем обработки.

Сертификаты хранились как JPEG-картинки на Google Drive — для их распознавания использовали локальную модель qwen3-vl:8b через Ollama.

Как селлер Ozon автоматизировал загрузку 231 сертификата с помощью Claude и Ollama
· Источник: Habr AI

Архитектуру пайплайна помог выстроить Claude. В ходе диалога выяснился важный технический момент: Ozon API принимает файлы сертификатов напрямую через multipart/form-data — метод POST /v1/product/certificate/create поддерживает загрузку байтов в форматах jpg, jpeg, png и pdf. Это означало, что промежуточный хостинг картинок не нужен вовсе: файлы уходят в Ozon прямо из локальной папки. Финальный пайплайн выглядел так: локальная папка с файлами → формирование пар «сертификат + приложение» → распознавание через Ollama → загрузка в Ozon через три метода API (создание сертификата, получение списка товаров, привязка по product_id).

По ходу работы вскрылись типичные проблемы реальных данных: часть сертификатов была связана с приложениями по имени файла, часть — только по номеру внутри документа; в именах файлов встречались опечатки; у одних сертификатов артикулы товаров вынесены в отдельное приложение, у других — указаны прямо в теле документа. Каждая такая аномалия ломала простой скрипт и требовала доработки. Дополнительно пришлось решать проблему маппинга брендов: один и тот же производитель мог фигурировать в Ozon под несколькими названиями. Её обошли через JSON-словарь, где папка с сертификатами одного бренда сопоставлялась сразу с несколькими вариантами написания.

После нескольких итераций отладки скрипт был запущен в боевом режиме. Полный прогон занял 3 часа 23 минуты: обработано 231 сертификат, средняя скорость — 52 секунды на документ. По оценке Claude, упрощение логики скрипта на финальном этапе сократило время обработки в 2–4 раза по сравнению с первоначальным вариантом. Подход показывает, как связка локальной vision-модели и облачного ассистента позволяет решать задачи с большим объёмом неструктурированных документов без значительных затрат на облачные API и без специальных навыков программирования у исполнителя.