mirror of
https://github.com/serty2005/rmser.git
synced 2026-02-04 19:02:33 -06:00
2.2 KiB
2.2 KiB
System Definition: RMSER OCR Service (v2.0)
1. Роль и Назначение
RMSER OCR Service — микросервис для интеллектуального извлечения товарных позиций из финансовых документов (чеки, счета, накладные). Использует гибридный подход: QR-коды, Computer Vision и LLM (Large Language Models).
2. Логика Обработки (Pipeline)
Этап А: Поиск QR-кода (Gold Standard)
- Поиск QR-кода (
pyzbar). - Валидация фискальных признаков (
t=,s=,fn=). - Запрос к API ФНС (
proverkacheka.com). - Результат:
source: "qr_api". 100% точность.
Этап Б: Yandex Cloud AI (Silver Standard)
Запускается, если QR не найден.
- OCR: Отправка изображения в Yandex Vision OCR. Получение сырого текста.
- Primary Parsing: Попытка извлечь данные регулярными выражениями.
- Semantic Parsing (LLM): Если Regex не нашел позиций, текст отправляется в YandexGPT.
- Модель структурирует разрозненный текст в JSON.
- Исправляет опечатки, связывает количество и цену, разбросанные по документу.
- Результат:
source: "yandex_vision". Высокая точность для любой верстки.
Этап В: Локальный OCR (Bronze Fallback)
Запускается при недоступности облака.
- Препроцессинг (OpenCV: Binarization, Deskew).
- OCR (Tesseract).
- Парсинг (Regex).
- Результат:
source: "tesseract_ocr". Базовая точность.
3. Контракт API
POST /recognize (multipart/form-data)
Response (JSON):
{
"source": "yandex_vision",
"items": [
{
"raw_name": "Маракуйя - пюре, 250 гр",
"amount": 5.0,
"price": 282.00,
"sum": 1410.00
}
],
"raw_text": "..."
}