fix(classifier): quality fixes for DEFAULT_EXEMPLARS — remove forward __all__ entry, tighten tests, fix survey exemplar
This commit is contained in:
parent
3be5055e31
commit
c177fb1628
2 changed files with 14 additions and 3 deletions
|
|
@ -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."""
|
||||
|
||||
|
|
|
|||
|
|
@ -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}"
|
||||
)
|
||||
|
|
|
|||
Loading…
Reference in a new issue