diff --git a/app/routes/documents.py b/app/routes/documents.py index 835e54d..05e77cb 100644 --- a/app/routes/documents.py +++ b/app/routes/documents.py @@ -2191,6 +2191,24 @@ async def save_layout_review(document_id: str, request: Request, db: Session = D # --- layout review save helpers end --- +@router.post("/{document_id}/run-vision-analysis", response_class=RedirectResponse) +def run_vision_analysis(document_id: str, db: Session = Depends(get_db)): + document = db.query(Document).filter(Document.document_id == document_id).first() + if not document: + return RedirectResponse( + url=f"/documents/{document_id}?tab=layout-review&error=document_not_found", + status_code=303, + ) + + # Phase 1 placeholder. + # Next phase: render page image, send to local VLM service, store suggestions. + print(f"[vision-analysis] queued placeholder run for {document.document_id}", flush=True) + + return RedirectResponse( + url=f"/documents/{document.document_id}?tab=layout-review&success=vision_analysis_started", + status_code=303, + ) + @router.get("/{document_id}", response_class=HTMLResponse) def document_detail(document_id: str, request: Request, queue: str | None = None, viewer_source: str = "scan", db: Session = Depends(get_db)): requested_tab = request.query_params.get("tab", "ocr-review") diff --git a/app/templates/documents/detail.html b/app/templates/documents/detail.html index 28789a0..2b55fbc 100644 --- a/app/templates/documents/detail.html +++ b/app/templates/documents/detail.html @@ -1916,6 +1916,9 @@ document.addEventListener("DOMContentLoaded", () => { +
+ +
Tools