feat(sf): OCR pipeline izjatie EKB Tesseract rus land_reservation 1062 #1153
No reviewers
Labels
No labels
admin
analytics
auth
automation
bug
business
chore
ci
compliance
data
data-moat
docs
duplicate
dx
enhancement
Fable 5 ревью
feedback/max
generative
GG-форсайт
needs-discussion
needs-human
observability
pause-bots
performance
priority/p0
priority/p1
priority/p2
priority/p3
scope/backend
scope/db
scope/devops
scope/frontend
scope/qa
scrapers
security
site-finder
stage/1
stage/2
status/blocked
status/done
status/needs-analysis
status/needs-fix
status/qa
status/ready
status/review
status/wip
tech-debt
tradein
ux
week ревью 1
wontfix
вторичка
ИРД
No milestone
No project
No assignees
3 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: lekss361/gendesign#1153
Loading…
Add table
Reference in a new issue
No description provided.
Delete branch "feat/izyatie-ocr-pipeline"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
Test plan
⚠️ Для reviewer/deploy: этот PR меняет
backend/Dockerfile(apt: tesseract-ocr + tesseract-ocr-rus) → деплой пересоберёт образ (дольше обычного, +tesseract ~50MB). После merge+deploy:docker exec gendesign-worker-1 tesseract --version(проверить установку + rus в--list-langs).ingest_izyatie_ocrчерез/app/.venv/bin/python(или celery call).SELECT count(*), reservation_kind FROM land_reservation WHERE source='izyatie_ekb_ocr' GROUP BY 2+ sample cad_nums — сверить с реальными сообщениями (Татищева/Базовый, кад 66:41:...).Я прогоню эту верификацию после деплоя (OCR на живых сканах — финальная проверка recall кад-номеров).
🔴 HOLD — нужно решение человека по лицензии (не мерджу авто).
Технически PR в порядке (uv.lock синхронизирован с pyproject ✓, Dockerfile добавляет tesseract-ocr+rus в runtime-слой ✓, 33 теста). Единственный, но серьёзный блокер — лицензия новой зависимости:
⚠️ PyMuPDF = AGPL-3.0
pymupdf>=1.24.0— двойная лицензия AGPL-3.0 / commercial. GenDesign — коммерческий SaaS (gendsgn.ru); AGPL §13 (network-copyleft) срабатывает на «взаимодействии по сети» → обязывает предоставлять исходники пользователям сервиса. С учётом compliance-контекста проекта (реестр ПО / 152-ФЗ) это юридическое решение, которое бот не вправе принимать сам.Есть non-AGPL альтернатива (уже в зависимостях!)
pypdfium2(BSD-3 + Apache-2 + PDFium BSD) уже транзитивно подтянут через pdfplumber (#1118) и умеет растеризовать PDF→image (PdfDocument(...).render(...)→PIL). Заменаpymupdf→pypdfium2вizyatie_ocr.ocr_pdf_textубирает AGPL без новых зависимостей и без poppler.Варианты (выбор за человеком)
pymupdfиз pyproject/lock, переписать rasterize-частьizyatie_ocr.py, обновить моки в тестах.Полное ревью OCR-логики (
izyatie_ocr.pyextract/normalize, ingest SAVEPOINT/CAST) сделаю после фиксации rasterize-библиотеки — она может затронуть код.Ставлю
needs-human+blocked: нужно решение по лицензии до мерджа. tesseract (apt) лицензионно чист (Apache-2) — вопрос только к PyMuPDF.