Files
rmser/ocr-service/system-prompt.md

48 lines
2.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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": "..."
}