V4.5 Complete - Enhanced trancription context, added option to restranscribe source under different models.

This commit is contained in:
Jim Lancaster
2026-08-16 09:06:56 -05:00
parent bdb1b31b0a
commit 7054cd8af9
28 changed files with 2883 additions and 1485 deletions
+44
View File
@@ -0,0 +1,44 @@
"""Tests for deterministic V4.5 transcription warnings."""
import pytest
from transcription.services.quality import QualityWarningCode
from transcription.services.quality import analyze_transcription_quality
from transcription.services.quality import quality_warning_payload
@pytest.mark.unit
def test_quality_analysis_reports_each_v45_warning_without_mutating_text():
text = (
"[document body handwritten]\n"
"[document body typewritten]\n"
"[handwritten: first line]\n"
"[handwritten: second line]\n"
"Damaged \ufffd text &"
)
warnings = analyze_transcription_quality(text)
assert [warning.code for warning in warnings] == [
QualityWarningCode.REPLACEMENT_CHARACTER,
QualityWarningCode.MULTIPLE_BODY_MARKERS,
QualityWarningCode.REDUNDANT_HANDWRITING_WRAPPERS,
QualityWarningCode.UNRESOLVED_HTML_ENTITY,
]
assert text.endswith("&")
@pytest.mark.unit
def test_quality_analysis_accepts_clean_transcription():
assert analyze_transcription_quality("[document body typewritten]\nClean text.") == ()
@pytest.mark.unit
def test_quality_warning_payload_is_versioned():
payload = quality_warning_payload(
analyze_transcription_quality("[document body typeset]\nBroken \ufffd")
)
assert payload["schema_name"] == "transcription.quality-warnings"
assert payload["schema_version"] == "1"
assert payload["warnings"][0]["code"] == "replacement_character"