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