diff --git a/src/unstract/llmwhisperer/client_v2.py b/src/unstract/llmwhisperer/client_v2.py index cf97f4b..6952df0 100644 --- a/src/unstract/llmwhisperer/client_v2.py +++ b/src/unstract/llmwhisperer/client_v2.py @@ -517,7 +517,9 @@ def whisper( params = { "mode": mode, "output_mode": output_mode, + # Both spellings are sent: services older than v2.64.2 read only the misspelled one "page_separator": page_separator, + "page_seperator": page_separator, "pages_to_extract": pages_to_extract, "median_filter_size": median_filter_size, "gaussian_blur_radius": gaussian_blur_radius, diff --git a/tests/unit/client_v2_test.py b/tests/unit/client_v2_test.py index 9f7a7fa..4d03e50 100644 --- a/tests/unit/client_v2_test.py +++ b/tests/unit/client_v2_test.py @@ -209,11 +209,21 @@ def test_whisper_sends_corrected_param_names(mocker: MockerFixture, client_v2: L assert query["page_separator"] == ["---"] assert query["line_splitter_strategy"] == ["mid-priority"] assert query["file_name"] == ["invoice.pdf"] - assert "page_seperator" not in query assert "line_spitter_strategy" not in query assert "filename" not in query +@pytest.mark.parametrize(("kwargs", "expected"), [({}, "<<<"), ({"page_separator": "---"}, "---")]) +def test_whisper_sends_page_separator_under_both_spellings( + mocker: MockerFixture, client_v2: LLMWhispererClientV2, kwargs: dict[str, str], expected: str +) -> None: + """Older services read only the misspelled key, so both carry the value.""" + query = _whisper_query(mocker, client_v2, **kwargs) + + assert query["page_separator"] == [expected] + assert query["page_seperator"] == [expected] + + def test_whisper_defaults_when_no_param_passed(mocker: MockerFixture, client_v2: LLMWhispererClientV2) -> None: """Omitting the renamed params keeps the previous defaults.""" query = _whisper_query(mocker, client_v2) @@ -224,11 +234,12 @@ def test_whisper_defaults_when_no_param_passed(mocker: MockerFixture, client_v2: def test_whisper_deprecated_page_seperator_is_forwarded(mocker: MockerFixture, client_v2: LLMWhispererClientV2) -> None: - """page_seperator still applies, under the corrected name.""" + """page_seperator still applies, under both spellings on the wire.""" with pytest.warns(DeprecationWarning, match="page_separator"): query = _whisper_query(mocker, client_v2, page_seperator="---") assert query["page_separator"] == ["---"] + assert query["page_seperator"] == ["---"] def test_whisper_deprecated_filename_is_forwarded(mocker: MockerFixture, client_v2: LLMWhispererClientV2) -> None: