Упаковочный лист из Китая → Excel
Задача
Упаковочный лист от китайского поставщика приходит на китайском — менеджеру закупок нужны наименования и веса на русском в таблице, а не абзац иероглифов, который приходится прогонять через переводчик руками
Результат
8 позиций упаковочного листа переведены на русский и разложены в Excel за 16,7 секунды — от загрузки скана до готовой книги с двумя листами
Как это выглядит сегодня
Поставка едет из Китая, упаковочный лист — на китайском: отправитель, получатель, номенклатура, вес нетто и брутто по каждой позиции. Менеджер закупок открывает документ, копирует текст кусками в переводчик, переносит результат в свою таблицу вручную и на каждой странице рискует перепутать строку с грузом на другую позицию — иероглифы читаются не построчно, а блоками, и первая же опечатка в артикуле расходится с тем, что на самом деле приехало на склад.
На поток такое не поставить: время уходит на копирование в переводчик и сведение таблицы, а не на проверку того, что реально пришло.
Что меняется
Файл уходит в /v1/process одним запросом: language=zh подсказывает OCR,
какой язык распознавать, translate={"to":"ru"} заказывает перевод
извлечённых значений, output_schema описывает нужные поля — отправитель,
получатель, позиции с наименованием, количеством и весом. Асинхронный режим
не держит соединение открытым, пока такая обработка не занимает 300-секундный
лимит внешнего прокси:
# 202 {"task_id": "…"} — сразу забираем task_idTASK=$(curl -s -X POST https://api.docinspect.ru/v1/process \ -H "X-API-Key: $API_KEY" \ -F "file=@packing_list.pdf" \ -F "language=zh" \ -F 'translate={"to":"ru"}' \ -F 'output_schema={"type":"object","properties":{ "shipper":{"type":"string","title":"Отправитель"}, "items":{"type":"array","title":"Позиции","items":{"type":"object","properties":{ "name":{"type":"string","title":"Наименование"}, "qty":{"type":"number","title":"Количество"}, "gross_kg":{"type":"number","title":"Брутто, кг"}}}}}}' \ -F "async=true" | jq -r .task_id) # дождитесь status=done: curl -H "X-API-Key: $API_KEY" https://api.docinspect.ru/v1/process/$TASK# пока status=processing, ?format=xlsx вернёт тот же JSON, а не файлcurl -H "X-API-Key: $API_KEY" "https://api.docinspect.ru/v1/process/$TASK?format=xlsx" -o packing_list.xlsxОтвет — сразу файл Excel (format=xlsx): лист «Документ» с реквизитами
блоками (поле · значение на китайском · перевод) и таблицей позиций, лист
«Позиции» — та же таблица отдельно, с фильтром, закреплённой шапкой и
колонками «Наименование» и «Наименование (ru)» рядом — сверять оригинал с
переводом можно не открывая исходный скан. Полный список полей и примеров —
в разделе [«/v1/process» → «Перевод и Excel»](/docs/process#translate-xlsx).
В кабинете тот же сценарий доступен без кода — раздел «Обработка»: файл, язык и перевод выбираются в форме, результат скачивается сразу таблицей.
Результат
На синтетическом упаковочном листе (1 тарифицируемая страница) все 8 позиций
и все 8 полей реквизитов документа распознаны полностью — обработка вместе с
переводом заняла 16,7 секунды. Перевод корректен: китайские наименования
пришли по-русски, единственная неточность — одно артефактное слово в переводе
одной позиции (HOIST-2T), не искажающее смысл строки. Результат сразу лёг
в Excel двумя листами — «Документ» и «Позиции» — без ручного копирования в
переводчик и без риска перепутать строку.
Как попробовать
Готовый код под этот сценарий — в документации, ее можно передать своим разработчикам. Сколько стоит обработка документов — на странице цен.