ОТЧЕТ Вход за редакция
Проект 2

Фактури Асистент

Автоматично разчитане на фактури - сканиран документ влиза, структурирани данни излизат. Тук мерих модели един срещу друг и разликата се оказа огромна.

Емилиан
обновен 13 октомври 2026
OCR · локални модели

Накратко

състояние към 13 октомври 2026

Задачата е да спрем ръчното въвеждане на фактури. Фактурата идва като PDF или като снимка, често сканирана накриво и на български. Трябва да излязат полета - доставчик, номер, дата, суми, ДДС, редове. Без човек да я препише.

Направих го на два слоя. Първият слой изкарва текст от документа. Вторият слой превръща текста в структура. Вторият слой е мястото, където избра моделът - и там мерих, вместо да предполагам.

14 s най-бързият модел, на документ
0,998 точност на същия модел
427 s най-бавният, и то без резултат
2 слоя - OCR и структуриране

Кой модел и защо

мерено, не предполагано

Очаквах, че българският модел ще се справи по-добре с български фактури. Излезе точно обратното. Голям български модел се въртя повече от седем минути на един документ и накрая не върна използваем резултат. Малък общ модел върна същата фактура за четиринайсет секунди с точност 0,998.

Изводът, който си взех: за извличане на полета от текст размерът и езикът на модела значат по-малко от това дали моделът умее да връща стриктна структура. Фактурата не иска разбиране на български, иска дисциплина при форматиране.

МоделВреме на документТочностИзход
qwen2.5:7b14 s0,998използваем, стриктна структура
bggpt-12b427 s-провал, не върна използваем резултат
Мерено на една и съща фактура, на една и съща машина, с един и същ подканващ текст. Числата са от мой прогон, не от чужд тест.

Какво се чупеше

1

Голям български модел не завърши

решено с друг модел
Какво ставаше
Единичен документ се въртя 427 секунди и накрая изходът беше неизползваем.
Защо
Не е в езика. Моделът не държи стриктен формат на изхода и започва да обяснява, вместо да връща полета.
Какво направих
Минах на по-малък общ модел, който връща структура.
Резултат
От седем минути без резултат на четиринайсет секунди с резултат.
2

Сканирано накриво

в работа
Какво ставаше
Наклонен или нискокачествен скан дава разкъсан текст и полетата се разместват.
Защо
Качеството на входа. OCR слоят връща каквото види.
Какво направих
Разделих задачата на отделни стъпки, за да може всяка да се проверява сама - а не целият документ да пропада заради едно поле.
Резултат
Остава да измеря точността отделно по типове скан. Числа за това още нямам.

Какво е построено

Слоеве

  • OCR слой - изкарва текст от PDF или снимка.
  • Слой за структуриране - локален модел превръща текста в полета.
  • Отделни стъпки за отделни части на документа, за да може една грешка да не вали целия документ.
  • Интерфейс отпред за преглед и потвърждение от човек, преди данните да влязат нататък.
Тази секция е по-обща от гласовия асистент, защото тук още не съм писал подробен дневник. Ще я допълвам от админ панела, вместо да я измислям сега.

Какво остава

Отворени задачи

  • Точност по типове документ - чист PDF, сканиран прав, сканиран накриво, снимка от телефон. Числа още няма.
  • Проверка на сборовете - сумата на редовете срещу общата сума, като твърда проверка в код, не като инструкция към модела.
  • Какво става при непознат доставчик и при фактура на чужд език.
  • Къде влизат данните нататък и кой потвърждава.