feat(ocr): fine-tune OCR quality criteria with stricter threshold and head-to-head comparison
- Raise quality acceptance threshold from 65→85 (configurable via TEXT_QUALITY_THRESHOLD) - Reject text with significant issues (excessive_typos, garbage_characters, incoherent_text, fragmented_sentences) even when score is above threshold (configurable via TEXT_QUALITY_SIGNIFICANT_ISSUES) - Add compare_text_quality() for AI-powered head-to-head comparison of original embedded text vs fresh OCR output - Update process_document to pass original text to OCR task for comparison - Update process_with_ocr to run comparison and keep the higher-quality text - Add new settings to settings_service.py metadata - Update docs/ConfigurationGuide.md with new settings - Add comprehensive tests for new threshold and comparison logic Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
This commit is contained in:
@@ -1070,6 +1070,31 @@ SETTING_METADATA = {
|
||||
"required": False,
|
||||
"restart_required": False,
|
||||
},
|
||||
"text_quality_threshold": {
|
||||
"category": "Processing",
|
||||
"description": (
|
||||
"Minimum quality score (0–100) required to accept embedded PDF text without re-OCR. "
|
||||
"Text scoring below this threshold triggers a fresh OCR pass. "
|
||||
"Default: 85. Lower values are more permissive; higher values enforce stricter quality."
|
||||
),
|
||||
"type": "integer",
|
||||
"sensitive": False,
|
||||
"required": False,
|
||||
"restart_required": False,
|
||||
},
|
||||
"text_quality_significant_issues": {
|
||||
"category": "Processing",
|
||||
"description": (
|
||||
"Comma-separated list of quality issue labels that force OCR re-run even when the quality "
|
||||
"score meets TEXT_QUALITY_THRESHOLD. Any matching issue in the AI assessment will trigger "
|
||||
"re-OCR regardless of the numeric score. "
|
||||
"Default: excessive_typos,garbage_characters,incoherent_text,fragmented_sentences"
|
||||
),
|
||||
"type": "list",
|
||||
"sensitive": False,
|
||||
"required": False,
|
||||
"restart_required": False,
|
||||
},
|
||||
# Notifications Settings
|
||||
"notification_urls": {
|
||||
"category": "Notifications",
|
||||
|
||||
Reference in New Issue
Block a user