Coverage for narrative_harm_classifier/__init__.py: 62%
13 statements
« prev ^ index » next coverage.py v7.15.2, created at 2026-07-20 13:25 +0000
« prev ^ index » next coverage.py v7.15.2, created at 2026-07-20 13:25 +0000
1"""narrative_harm_classifier — narrative harm classification, escalation tracking, and benchmarking."""
3__version__ = "0.1.0"
5from narrative_harm_classifier.core.config import get_settings
6from narrative_harm_classifier.core.models import ClassificationResult, ClassifyRequest
7from narrative_harm_classifier.classifier.rules.engine import ClassificationEngine
8from narrative_harm_classifier.classifier.rules.azure_nlp import AzureNLPClient
9from narrative_harm_classifier.classifier.taxonomy.loader import load_taxonomy
11__all__ = [
12 "__version__",
13 "classify",
14 "ClassificationResult",
15 "ClassifyRequest",
16 "ClassificationEngine",
17]
20def classify(text: str, context: str | None = None) -> ClassificationResult:
21 """Convenience one-shot classification using the default taxonomy and settings."""
22 settings = get_settings()
23 taxonomy = load_taxonomy(settings.taxonomy_config_path)
24 azure_client = AzureNLPClient(
25 endpoint=settings.azure_text_analytics_endpoint,
26 key=settings.azure_text_analytics_key,
27 )
28 engine = ClassificationEngine(taxonomy=taxonomy, azure_client=azure_client)
29 return engine.classify(ClassifyRequest(text=text, context=context))