VibeLab
Поделиться
Средний логистический оператор тратит 12–15 минут на ручную обработку одной транспортной накладной. При 300 документах в день это 75 человеко-часов — почти 10 штатных единиц, занятых перепечатыванием данных из бумаги в ERP. В этой статье разберу архитектуру связки OCR → LLM → RAG, которую мы собрали для автоматизации трёх ключевых процессов: обработки CMR, диспетчеризации заявок и клиентской поддержки.
Транспортная накладная — формально простой документ: отправитель, получатель, груз, маршрут, дата. Но в реальности вы получаете мятые сканы, рукописные пометки и три разных формата CMR от разных перевозчиков.
Типичные узкие места:
Экономика: 300 накладных × 15 минут = 75 часов ежедневно. При стоимости оператора ~250 000 руб/мес (с налогами и рабочим местом) — порядка 2,5 млн руб/мес только на ввод данных. Прибавьте пересортицу, штрафы за некорректные CMR, потерянные заявки — ещё 500–800 тыс.
Классический OCR (Tesseract, ABBYY) распознаёт текст, но не понимает его. Он выдаст строку ООО Транслогистик, г. Москва, ул. Складская 12 — но не определит, отправитель это или получатель. Для документов со свободной вёрсткой это критичная разница.
Решение — не «поставить чат-бота» и не «подключить нейросеть к сканеру». Это три взаимосвязанных контура, которые усиливают друг друга через общий vector store.
Контур 1: OCR + LLM для документов. Сканированные накладные и CMR → структурированные данные. Пайплайн: сканирование → распознавание текста → извлечение полей через LLM → валидация → запись в ERP/TMS.
Контур 2: RAG-система для диспетчеризации. Входящие заявки в свободной форме автоматически парсятся, классифицируются и превращаются в задачи. Модель опирается на базу знаний компании.
Контур 3: Чат-бот с доступом к TMS. Клиенты и водители получают ответы на типовые вопросы за секунды. Бот обращается к TMS и GPS-данным в реальном времени.
Одна инвестиция в vector store — три точки возврата.
Нормализация решает до 80% будущих ошибок OCR. Минимальный набор:
Минимальное разрешение — 300 DPI. Если документ приходит в меньшем — масштабируем. Без этого точность OCR падает на 10–15%.
Для русскоязычных документов варианты:
Для продакшена мы остановились на EasyOCR для on-premise сценариев и Yandex Vision для облачных. Tesseract заметно проигрывает на рукописных пометках.
Здесь магия. LLM получает «сырой» текст и промпт со схемой, возвращает структурированный JSON:
Использование response_format с Pydantic-моделью гарантирует валидный JSON на выходе — не нужно парсить ответ регулярками.
Здесь подключается общий vector store. Извлечённые данные сверяются с:
sender_name отличается от ближайшей записи в базе на >15% (по Levenshtein), документ уходит на ручную проверку.Мы протестировали несколько моделей на датасете из 500 русскоязычных транспортных накладных:
| Параметр | GPT-4o | Claude Sonnet | Mistral Large | Fine-tuned Mistral 7B |
|---|---|---|---|---|
| Точность извлечения полей | 94–97% | 93–96% | 89–93% | 95–98% |
| Стоимость на 1000 документов | ~$15–20 | ~$12–18 | ~$8–12 | ~$1–2 (свой GPU) |
| Latency (один документ) | 3–5 сек | 3–6 сек | 2–4 сек | 1–2 сек |
| On-premise | Нет | Нет | Да (через vLLM) | Да |
Для продакшена с высоким объёмом fine-tuned Mistral 7B — оптимальный выбор. Точность на уровне GPT-4o при стоимости на порядок ниже. Для старта или малых объёмов — GPT-4o через API, чтобы не возиться с инфраструктурой.
Диспетчер получает заявку вида: «Нужно забрать 2 паллета из Подольска завтра утром, доставить в Казань до пятницы. Термо не нужен, но хрупкое.» Из этого нужно создать структурированную задачу в TMS.
RAG-пайплайн:
Время обработки заявки: 10–20 секунд вместо 5–10 минут. Диспетчер переходит из режима «ввожу данные» в режим «проверяю и подтверждаю».
Клиент спрашивает «Где мой груз по заказу TL-2024-1587?» Бот:
Время ответа: 5–10 секунд вместо 3–5 минут на звонке.
Для реализации хорошо подходит function calling — LLM вызывает нужные API-функции как tool calls.
Примерные затраты на внедрение для среднего логистического оператора (200–500 документов/день):
| Статья | Стоимость |
|---|---|
| Разработка (MVP, 2–3 мес.) | 2–4 млн руб |
| Инфраструктура (GPU-сервер или облако) | 100–300 тыс руб/мес |
| API LLM (при облачном варианте) | 50–150 тыс руб/мес |
| Поддержка и доработка | 150–300 тыс руб/мес |
Экономия:
Итого экономия: 3,5–4,2 млн руб/мес. Окупаемость MVP: 1–2 месяца после запуска.
Если работаете над подобной задачей — пишите в комментариях, обсудим детали. Особенно интересен опыт с on-premise моделями для обработки конфиденциальных документов.
Подписывайтесь на наш канал: @vibelogia
Поделимся опытом
8 800 201 85 68