klausur-service (11 files): - cv_gutter_repair, ocr_pipeline_regression, upload_api - ocr_pipeline_sessions, smart_spell, nru_worksheet_generator - ocr_pipeline_overlays, mail/aggregator, zeugnis_api - cv_syllable_detect, self_rag backend-lehrer (17 files): - classroom_engine/suggestions, generators/quiz_generator - worksheets_api, llm_gateway/comparison, state_engine_api - classroom/models (→ 4 submodules), services/file_processor - alerts_agent/api/wizard+digests+routes, content_generators/pdf - classroom/routes/sessions, llm_gateway/inference - classroom_engine/analytics, auth/keycloak_auth - alerts_agent/processing/rule_engine, ai_processor/print_versions agent-core (5 files): - brain/memory_store, brain/knowledge_graph, brain/context_manager - orchestrator/supervisor, sessions/session_manager admin-lehrer (5 components): - GridOverlay, StepGridReview, DevOpsPipelineSidebar - DataFlowDiagram, sbom/wizard/page website (2 files): - DependencyMap, lehrer/abitur-archiv Other: nibis_ingestion, grid_detection_service, export-doclayout-onnx Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
35 lines
1.2 KiB
Python
35 lines
1.2 KiB
Python
"""
|
|
Overlay image rendering for OCR pipeline — barrel re-export.
|
|
|
|
All implementation split into:
|
|
ocr_pipeline_overlay_structure — structure overlay (boxes, zones, colors, graphics)
|
|
ocr_pipeline_overlay_grid — columns, rows, words overlays
|
|
|
|
Lizenz: Apache 2.0
|
|
DATENSCHUTZ: Alle Verarbeitung erfolgt lokal.
|
|
"""
|
|
|
|
from fastapi import HTTPException
|
|
from fastapi.responses import Response
|
|
|
|
from ocr_pipeline_overlay_structure import _get_structure_overlay # noqa: F401
|
|
from ocr_pipeline_overlay_grid import ( # noqa: F401
|
|
_get_columns_overlay,
|
|
_get_rows_overlay,
|
|
_get_words_overlay,
|
|
)
|
|
|
|
|
|
async def render_overlay(overlay_type: str, session_id: str) -> Response:
|
|
"""Dispatch to the appropriate overlay renderer."""
|
|
if overlay_type == "structure":
|
|
return await _get_structure_overlay(session_id)
|
|
elif overlay_type == "columns":
|
|
return await _get_columns_overlay(session_id)
|
|
elif overlay_type == "rows":
|
|
return await _get_rows_overlay(session_id)
|
|
elif overlay_type == "words":
|
|
return await _get_words_overlay(session_id)
|
|
else:
|
|
raise HTTPException(status_code=400, detail=f"Unknown overlay type: {overlay_type}")
|