Implemented the grammar LLM review module
This commit is contained in:
@@ -61,6 +61,7 @@ def test_process_transcript_runs_noop_framework(tmp_path):
|
||||
{"corrections": []},
|
||||
{"corrections": []},
|
||||
{"corrections": []},
|
||||
{"corrections": []},
|
||||
]
|
||||
)
|
||||
revised = process_transcript(
|
||||
@@ -78,6 +79,7 @@ def test_process_transcript_runs_noop_framework(tmp_path):
|
||||
"homophones:proposal",
|
||||
"glossary_2:proposal",
|
||||
"spoken_word:proposal",
|
||||
"grammar:proposal",
|
||||
]
|
||||
|
||||
|
||||
@@ -93,7 +95,9 @@ def test_process_transcript_result_writes_report_and_preserves_skips_per_policy(
|
||||
max_retries=config.max_retries,
|
||||
max_section_tokens=config.max_section_tokens,
|
||||
glossary_confidence_threshold=config.glossary_confidence_threshold,
|
||||
grammar_confidence_threshold=config.grammar_confidence_threshold,
|
||||
homophones_confidence_threshold=config.homophones_confidence_threshold,
|
||||
spoken_word_confidence_threshold=config.spoken_word_confidence_threshold,
|
||||
normalize_max_segment_gap=config.normalize_max_segment_gap,
|
||||
normalize_ellipsis_gap=config.normalize_ellipsis_gap,
|
||||
normalize_max_segment_duration=config.normalize_max_segment_duration,
|
||||
@@ -108,6 +112,7 @@ def test_process_transcript_result_writes_report_and_preserves_skips_per_policy(
|
||||
{"corrections": []},
|
||||
{"corrections": []},
|
||||
{"corrections": []},
|
||||
{"corrections": []},
|
||||
]
|
||||
)
|
||||
result = process_transcript_result(_transcript(), _glossary(), config, llm_client=llm_client)
|
||||
@@ -135,6 +140,12 @@ def test_process_transcript_result_writes_report_and_preserves_skips_per_policy(
|
||||
"spoken_word_review",
|
||||
"meaning_reversal_review",
|
||||
]
|
||||
assert [validator["name"] for validator in result.report.modules[4].to_dict()["validators"]] == [
|
||||
"proposal_confidence_guard",
|
||||
"protected_glossary_guard",
|
||||
"grammar_only_guard",
|
||||
"meaning_reversal_review",
|
||||
]
|
||||
|
||||
|
||||
def test_external_report_can_be_written(tmp_path):
|
||||
@@ -145,6 +156,7 @@ def test_external_report_can_be_written(tmp_path):
|
||||
{"corrections": []},
|
||||
{"corrections": []},
|
||||
{"corrections": []},
|
||||
{"corrections": []},
|
||||
]
|
||||
)
|
||||
result = process_transcript_result(_transcript(), _glossary(), config, llm_client=llm_client)
|
||||
@@ -191,7 +203,12 @@ def test_default_module_specs_expose_final_validator_order():
|
||||
"spoken_word_review",
|
||||
"meaning_reversal_review",
|
||||
]
|
||||
assert [validator.name for validator in specs[4].module.validators()] == ["protected_glossary_guard"]
|
||||
assert [validator.name for validator in specs[4].module.validators()] == [
|
||||
"proposal_confidence_guard",
|
||||
"protected_glossary_guard",
|
||||
"grammar_only_guard",
|
||||
"meaning_reversal_review",
|
||||
]
|
||||
|
||||
|
||||
def test_process_transcript_result_missing_api_key_writes_failed_report(tmp_path):
|
||||
@@ -206,7 +223,9 @@ def test_process_transcript_result_missing_api_key_writes_failed_report(tmp_path
|
||||
max_retries=config.max_retries,
|
||||
max_section_tokens=config.max_section_tokens,
|
||||
glossary_confidence_threshold=config.glossary_confidence_threshold,
|
||||
grammar_confidence_threshold=config.grammar_confidence_threshold,
|
||||
homophones_confidence_threshold=config.homophones_confidence_threshold,
|
||||
spoken_word_confidence_threshold=config.spoken_word_confidence_threshold,
|
||||
normalize_max_segment_gap=config.normalize_max_segment_gap,
|
||||
normalize_ellipsis_gap=config.normalize_ellipsis_gap,
|
||||
normalize_max_segment_duration=config.normalize_max_segment_duration,
|
||||
@@ -257,7 +276,9 @@ def test_process_transcript_result_preserves_partial_progress_when_later_module_
|
||||
max_retries=config.max_retries,
|
||||
max_section_tokens=config.max_section_tokens,
|
||||
glossary_confidence_threshold=config.glossary_confidence_threshold,
|
||||
grammar_confidence_threshold=config.grammar_confidence_threshold,
|
||||
homophones_confidence_threshold=config.homophones_confidence_threshold,
|
||||
spoken_word_confidence_threshold=config.spoken_word_confidence_threshold,
|
||||
normalize_max_segment_gap=config.normalize_max_segment_gap,
|
||||
normalize_ellipsis_gap=config.normalize_ellipsis_gap,
|
||||
normalize_max_segment_duration=config.normalize_max_segment_duration,
|
||||
@@ -330,7 +351,9 @@ def test_process_transcript_result_preserves_partial_skips_and_validator_diagnos
|
||||
max_retries=config.max_retries,
|
||||
max_section_tokens=config.max_section_tokens,
|
||||
glossary_confidence_threshold=0.8,
|
||||
grammar_confidence_threshold=config.grammar_confidence_threshold,
|
||||
homophones_confidence_threshold=config.homophones_confidence_threshold,
|
||||
spoken_word_confidence_threshold=config.spoken_word_confidence_threshold,
|
||||
normalize_max_segment_gap=config.normalize_max_segment_gap,
|
||||
normalize_ellipsis_gap=config.normalize_ellipsis_gap,
|
||||
normalize_max_segment_duration=config.normalize_max_segment_duration,
|
||||
@@ -404,7 +427,7 @@ def test_process_transcript_result_supports_grammar_only_module_override(tmp_pat
|
||||
_glossary(),
|
||||
config,
|
||||
module_keys=["grammar"],
|
||||
llm_client=FakeStructuredLLMClient([]),
|
||||
llm_client=FakeStructuredLLMClient([{"corrections": []}]),
|
||||
)
|
||||
|
||||
assert [segment.id for segment in result.transcript] == [1, 2]
|
||||
|
||||
Reference in New Issue
Block a user