diff --git a/app/routes/documents.py b/app/routes/documents.py index 04c9686..4700e6d 100644 --- a/app/routes/documents.py +++ b/app/routes/documents.py @@ -2435,6 +2435,8 @@ def document_detail(document_id: str, request: Request, queue: str | None = None latest_vision_output = None vision_analysis_json = None + vision_candidate_fields = [] + vision_field_suggestions = [] try: DocumentVisionAnalysisOutput.__table__.create(bind=db.get_bind(), checkfirst=True) latest_vision_output = ( @@ -2450,6 +2452,16 @@ def document_detail(document_id: str, request: Request, queue: str | None = None latest_vision_output = None vision_analysis_json = None + vision_source_json = layout_source_json if isinstance(layout_source_json, dict) else {} + + if current_text_version and isinstance(getattr(current_text_version, "layout_json", None), dict): + current_layout_json = current_text_version.layout_json + if current_layout_json.get("vision_candidate_fields") or current_layout_json.get("vision_field_suggestions"): + vision_source_json = current_layout_json + + vision_candidate_fields = vision_source_json.get("vision_candidate_fields") or [] + vision_field_suggestions = vision_source_json.get("vision_field_suggestions") or [] + diagnostic_outputs = [] try: diagnostic_outputs = list_candidate_outputs(db.connection(), document.id) @@ -2559,6 +2571,8 @@ def document_detail(document_id: str, request: Request, queue: str | None = None "diagnostic_outputs": diagnostic_outputs, "latest_vision_output": latest_vision_output, "vision_analysis_json": vision_analysis_json, + "vision_candidate_fields": vision_candidate_fields, + "vision_field_suggestions": vision_field_suggestions, "overlay_page_data": overlay_page_data, "layout_review_pages": layout_review_pages, "replica_clean_output": replica_clean_output, diff --git a/app/templates/documents/detail.html b/app/templates/documents/detail.html index 22ff9c9..f0dca3e 100644 --- a/app/templates/documents/detail.html +++ b/app/templates/documents/detail.html @@ -1987,11 +1987,40 @@ document.addEventListener("DOMContentLoaded", () => { -{% set vision_fields = [] %} -{% if vision_analysis_json and vision_analysis_json.get("vision_candidate_fields") %} - {% set vision_fields = vision_analysis_json.get("vision_candidate_fields") %} -{% elif layout_review_pages and layout_review_pages[0].get("vision_candidate_fields") %} - {% set vision_fields = layout_review_pages[0].get("vision_candidate_fields") %} +{% set vision_fields = vision_candidate_fields or [] %} +{% set vision_suggestions = vision_field_suggestions or [] %} + +{% if vision_suggestions %} +
| Action | +Field | +Value | +Confidence | +OCR Conf. | +
|---|---|---|---|---|
| {{ suggestion.get("action", "") }} | +{{ suggestion.get("target_field", "") }} | +{{ suggestion.get("value", "") }} |
+ {{ suggestion.get("confidence", "") }} | +{{ suggestion.get("ocr_confidence", "") }} | +