Перейти к содержимому
Антон ГончаровРазработчик ИИ-систем

Веб-приложение · OCR · проверка реквизитов

Распознавание документов

Распознать текст — половина дела. Бухгалтерии нужны поля, которым можно верить: поэтому после OCR идут проверки — контрольные разряды ИНН и расчётного счёта, совпадение суммы строк с итогом, НДС. Всё, что не сошлось, подсвечивается прямо на документе.

Сценарий: Счета и акты поставщиков обжарочной — вымышленные, плюс любые ваши документы.

Скриншот демо: Распознавание документов

Открыть демо

При первом запуске загрузится модель OCR — около 5 МБ, дальше она берётся из кеша браузера.

Приложение работает в браузере: на сервер ничего не отправляется.

Что показывает демо

  • OCR прямо в браузере, без отправки файла: Tesseract с русской моделью

  • PDF с текстовым слоем читается без OCR — быстрее и без ошибок

  • Выравнивание наклонённого фото перед распознаванием

  • 16 полей: поставщик, покупатель, ИНН, КПП, БИК, счета, номер, дата, суммы, НДС — и строки таблицы

  • Проверки: контрольные числа ИНН и счетов по БИК, количество × цена, сумма строк, НДС

  • Ошибка распознавания ИНН исправляется по контрольной сумме — с пометкой «испр.»

  • Поля можно поправить вручную, результат — в JSON или CSV для Excel

Как попробовать

  1. Откройте приложение

    Выберите пример — счёт или фото акта — или загрузите свой файл: JPG, PNG, WebP или PDF до 15 МБ.

  2. Посмотрите на поля

    Справа — извлечённые реквизиты с уверенностью распознавания. Наведите на поле — оно подсветится на документе.

  3. Найдите ошибку

    В акте итог не сходится с суммой строк — приложение покажет, где именно, и подсветит поля красным.

  4. Выгрузите результат

    Исправьте поле, если нужно, и скачайте JSON или CSV.

Без платных нейросетей

Поля из текста извлекают правила и регулярные выражения — для типовых счетов и актов этого хватает, и ответ можно проверить. В рабочем проекте для нестандартных документов подключается модель со строгим ответом по JSON-схеме, а проверки реквизитов остаются теми же.

Демо работает без API-ключей OpenAI, YandexGPT или GigaChat. Там, где рабочая система обращается к модели, стоит локальная заглушка с тем же интерфейсом — поэтому демо бесплатно, всегда доступно и ничего не выдумывает.

Что будет в рабочем проекте

  • Входящие документы из почты, ЭДО или 1С — без ручной загрузки
  • Модель для нестандартных форм, OCR на сервере для потока в тысячи страниц
  • Сверка с 1С: есть ли поставщик, совпадает ли сумма с заказом
  • Очередь «на проверку человеку» только для документов, где проверки не сошлись

Стек

  • React 19
  • TypeScript
  • Tesseract.js
  • pdf.js
  • Vite
  • Tailwind CSS

Основано на

Книги и дисциплины, идеи из которых работают в этом демо.

  • Книга · Чарльз Петцольд

    Код. Тайный язык информатики

    Контрольные числа ИНН и счетов — тоже код: по ним ошибка распознавания находится и исправляется.

Комментарий от разработчика

Антон Гончаров

Разработчик ИИ-систем · Python

Для бизнеса

  • Бухгалтерия перестаёт перепечатывать счета: поля заполняются сами, человек смотрит только на то, что не сошлось.
  • Ошибки ловятся до оплаты: неверный ИНН, итог не равен сумме строк, НДС посчитан неправильно.
  • Файлы не уходят на чужие серверы — это важно, когда в документах коммерческая тайна.

Для разработчиков

  • OCR — Tesseract.js с русской моделью прямо в браузере. PDF с текстовым слоем читается через pdf.js вообще без распознавания.
  • Перед OCR фото выравнивается по наклону, после — поля достаются правилами и проверяются контрольными числами ИНН и счетов по БИК.
  • Ошибку распознавания в ИНН можно исправить по контрольной сумме — поле помечается «испр.», чтобы человек это видел.

Советы

  • Совет 01

    Проверки реквизитов ценнее точности OCR: идеальное распознавание не спасёт от ошибки в самом документе.

  • Совет 02

    Показывайте уверенность по каждому полю и подсвечивайте его на документе — проверка займёт секунды, а не минуты.

Нужен такой же для вашего бизнеса?

Расскажите о задаче — отвечу, что из демо подойдёт вам, сколько это займёт и что понадобится с вашей стороны.

Другие демо в этом разделе

Все демо
  • Веб-приложение · диалоги · сделки · аналитика

    работает

    Панель оператора

    Рабочее место оператора, которому бот передаёт сложные обращения: очередь с таймером, резюме диалога, черновик ответа, сделки на канбане и аналитика — на живом потоке клиентов.

    • React
    • TypeScript
  • Веб-приложение · Recharts · RBAC · аудит

    работает

    SaaS-дашборд

    Кабинет команды выручки SaaS: MRR по тарифам, движение выручки, отток, здоровье клиентов, выгрузка CSV для Excel и журнал действий. Все цифры считаются из одной истории за год — смена тарифа в карточке клиента сразу двигает MRR на графиках.

    • React
    • TypeScript
  • Веб-приложение · Laravel · PostgreSQL

    работает

    Складской контур на Laravel

    Учёт склада, где остаток — сумма проводок, а не «поле qty--»: заказы с резервом «всё или ничего», сборка по ячейкам, приёмка с импортом CSV, инвентаризация и журнал. Гонка двух настоящих процессов PHP в PostgreSQL показывает, зачем нужна блокировка строки.

    • PHP
  • Веб-приложение · метрики · оповещения

    работает

    Мониторинг бота

    Как следят за ботом, когда он уже работает с клиентами: сколько запросов, как быстро он отвечает, как часто ошибается или не знает ответа. Журнал запросов с трассой каждого ответа и правила, которые пишут дежурному в Telegram, если что-то пошло не так.

    • React
    • TypeScript
  • Парсер на Python · работает в браузере

    работает

    Мониторинг цен конкурентов

    Парсер на Python каждый день обходит сайты трёх конкурентов магазина электроники: HTML-каталог с пагинацией, sitemap с JSON-LD и SPA с API. Сопоставляет товары с каталогом, присылает уведомления об изменениях, рекомендует цену по правилам и выгружает отчёт в Excel. Python работает прямо в браузере.

    • Python
    • React
    • TypeScript
  • Веб-приложение · PWA · нативный JS

    работает

    Офлайн-приложение курьера

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

    • Нативный JS