diff --git a/scripts/classifier_adapters.py b/scripts/classifier_adapters.py index fc5f37a..3021ec4 100644 --- a/scripts/classifier_adapters.py +++ b/scripts/classifier_adapters.py @@ -20,7 +20,6 @@ __all__ = [ "GLiClassAdapter", "RerankerAdapter", "FineTunedAdapter", - "EmbeddingKNNAdapter", ] LABELS: list[str] = [ @@ -158,7 +157,7 @@ DEFAULT_EXEMPLARS: dict[str, list[str]] = { "Subject: Culture Fit Assessment\n\nAs part of our process, we ask all candidates to complete a short assessment.", "Subject: Skills Assessment\n\nWe'd like you to complete our online coding assessment before proceeding.", "Subject: Personality Assessment\n\nPlease complete the following assessment as the next step in our process.", - "Subject: Interview Feedback Survey\n\nThank you for interviewing — your feedback helps us improve our process.", + "Subject: Pre-interview questionnaire\n\nBefore we schedule your interview, please complete this brief skills survey.", ], "neutral": [ "Subject: Application Received\n\nWe have received your application and will be in touch.", @@ -194,6 +193,7 @@ DEFAULT_EXEMPLARS: dict[str, list[str]] = { ], } + class ClassifierAdapter(abc.ABC): """Abstract base for all email classifier adapters.""" diff --git a/tests/test_classifier_adapters.py b/tests/test_classifier_adapters.py index 793f306..aaea9ba 100644 --- a/tests/test_classifier_adapters.py +++ b/tests/test_classifier_adapters.py @@ -301,7 +301,7 @@ def test_default_exemplars_covers_all_labels(): from scripts.classifier_adapters import DEFAULT_EXEMPLARS, LABELS for label in LABELS: assert label in DEFAULT_EXEMPLARS, f"DEFAULT_EXEMPLARS missing label: {label}" - assert len(DEFAULT_EXEMPLARS[label]) >= 1, f"{label} has no exemplar texts" + assert len(DEFAULT_EXEMPLARS[label]) >= 4, f"{label} needs >= 4 exemplars for k=3 voting" def test_default_exemplars_sparse_labels_have_at_least_four(): @@ -311,3 +311,14 @@ def test_default_exemplars_sparse_labels_have_at_least_four(): assert len(DEFAULT_EXEMPLARS[label]) >= 4, ( f"{label} needs >= 4 exemplars for k=3 voting to work reliably" ) + +def test_default_exemplars_strings_are_formatted_correctly(): + from scripts.classifier_adapters import DEFAULT_EXEMPLARS + for label, texts in DEFAULT_EXEMPLARS.items(): + for text in texts: + assert text.startswith("Subject: "), ( + f"{label!r} exemplar missing 'Subject: ' prefix: {text[:50]!r}" + ) + assert "\n\n" in text, ( + f"{label!r} exemplar missing double-newline separator: {text[:50]!r}" + )