Spaces:
Sleeping
Sleeping
feat: update classifier model to local zero-shot NLI and enhance language detection with local library
2d0ef3b Architecture Decisions (ADR-style)
ADR-001: Use modular FastAPI layout for classifier backend
- Status: Accepted
- Type: Explicit
- Evidence:
app/main.pyapp/api/router.pyapp/routers/app/services/app/pipelines/
- Rationale:
- Clear separation between transport, orchestration, and integrations.
ADR-002: Preserve endpoint contracts from prior service behavior
- Status: Accepted
- Type: Explicit
- Evidence:
app/routers/classification.pytests/test_routes.py
- Rationale:
- Keep clients functional while refactoring internals.
ADR-003: Use local Hugging Face zero-shot NLI model for classification
- Status: Accepted
- Type: Explicit
- Evidence:
app/core/config.pyapp/services/classifier_service.py
- Rationale:
- Perform true runtime-label zero-shot classification with local inference control.
ADR-004: Use local langdetect library for language detection
- Status: Accepted
- Type: Explicit
- Evidence:
app/services/language_service.py
- Rationale:
- Remove external dependency and keep language inference local.
ADR-005: Keep labels in in-memory mutable config
- Status: Accepted (current), Needs review
- Type: Explicit
- Evidence:
app/models/label_config.pyapp/services/label_service.pyapp/routers/classification.py(/configlabel,/labels)
- Rationale:
- Simple runtime tuning without DB migration.
- Tradeoff:
- No persistence across restarts, no cross-instance consistency.
ADR-006: Store uploaded files on local filesystem under static mount
- Status: Accepted
- Type: Explicit
- Evidence:
app/services/file_storage_service.pyapp/main.pydocker-compose.yml
- Rationale:
- Enables document/image extraction workflow with minimal infrastructure.
ADR-007: Map errors into contract-friendly HTTP statuses
- Status: Accepted
- Type: Explicit
- Evidence:
app/routers/classification.pyapp/core/exceptions.py
- Rationale:
- Differentiate local validation issues (
400) from inference failures (502).
- Differentiate local validation issues (
ADR-008: No built-in auth layer for this API
- Status: Accepted (current), Needs review
- Type: Inferred
- Evidence:
app/routers/classification.py- absence of auth dependencies/middleware in
app/main.py
- Rationale:
- likely positioned as internal or early-stage service.