Андрей globall.dev zallord Сбер ID
Telegram-боты, Mini App, SaaS и веб-сервисы под ключ
Рейтинг
1 756
№ 571 в каталоге
Отзывы
0
Профессионализм
-/10
Коммуникация
- /10
Город
Москва
Опыт работы
7 лет
На сайте с
2019 года
Юридический статус
ИП
Freelance.Boutique
Премиум-сервис для лучших исполнителей

Распознавание документов и фото в боте - накладные и заявки без ручного ввода

Используемые навыки API Google OCR Python Telegram API Обработка изображений

Описание

Логистическая компания принимала заявки фотографиями накладных прямо в телеграм.
Клиент фоткал бумагу на телефон и кидал в чат, оператор открывал снимок и перебивал в таблицу номер, дату, вес, объём, адреса погрузки и выгрузки.
Дальше он же руками считал стоимость по тарифной сетке.
На одну заявку уходило минут пять, в пик их прилетало под сотню за день.
Ошибки были в цифрах - переставленный вес менял цену перевозки, и выяснялось это уже после выезда машины.
Часть документов приходила аккуратным pdf из учётной программы, часть - кривым фото с бликом и обрезанным углом листа.
Заказчик просил, чтобы оператор перестал печатать и только проверял.

Решение

Бот на Python и aiogram принимает фото, скан или pdf, можно закинуть пачкой.
Снимок сначала выпрямляется и чистится - поворот по краям листа, контраст, обрезка полей, без этого распознавание фото с бликом сыпется.
Текст снимается OCR, разбор полей делает модель - номер и дата, отправитель и получатель, вес, объём, адреса.
Единицы приводятся к одному виду, килограммы и кубометры, потому что в накладных пишут и тонны, и литры.
Разбор возвращается человеку карточкой в чат, поля с низкой уверенностью подсвечены.
Оператор жмёт на поле и правит его прямо в боте, таблицу для этого открывать не надо.
Стоимость считается по тарифной сетке заказчика - направление, вес, объём, надбавка за габарит.
После подтверждения заявка ложится строкой в Google Таблицу, рядом ссылка на исходный файл.
Слабое место таких ботов - модель дописывает поле, которого на бумаге нет, и делает это очень уверенно.
Поэтому каждое поле идёт со своей оценкой, пустое значение считается лучше выдуманного, а без подтверждения оператором заявка в таблицу не попадает.
Файлы и разборы хранятся у заказчика на VPS, повторно присланный документ ловится по хэшу и не плодит дубли строк.
Тарифы лежат отдельным листом таблицы, так-же там правятся коэффициенты - код при этом не трогается.

Результат

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

Оценили проект:

Другие проекты

Все проекты →
Бизнес, Продажи и Консалтинг HR-бот для найма - анкета кандидата, скрининг и карточка в таблице
HR-бот для найма - анкета кандидата, скрининг и карточка в таблице
11
Искусственный интеллект ИИ-ассистент поддержки по базе знаний компании в Telegram и на сайте
ИИ-ассистент поддержки по базе знаний компании в Telegram и на сайте
17
Веб-разработка и IT Бот онлайн-записи для барбершопа - мастера, свободные слоты и напоминания
Бот онлайн-записи для барбершопа - мастера, свободные слоты и напоминания
16
Веб-разработка и IT Бутик одежды в Telegram - лукбук, размеры и запись на примерку
Бутик одежды в Telegram - лукбук, размеры и запись на примерку
15