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

2.2 KiB
Raw Blame History

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):

{
  "source": "yandex_vision",
  "items": [
    {
      "raw_name": "Маракуйя - пюре, 250 гр",
      "amount": 5.0,
      "price": 282.00,
      "sum": 1410.00
    }
  ],
  "raw_text": "..." 
}