Skip to content

Schema

Pydantic models for language detection results and configuration.

Authors

Dimitrij Ray (dimitrij.ray@gdplabs.id)

References

NONE

DetectionConfig

Bases: BaseModel

Configuration options for the language detector.

Attributes:

Name Type Description
confidence_threshold float

Minimum confidence required to accept detection results.

batch_size int

Maximum number of texts processed per batch.

fallback_language str | None

Language code to return when detection confidence is insufficient.

max_alternatives int

Maximum number of alternative detections to return.

validate_fallback_language(value) classmethod

Validate optional fallback language code format.

Parameters:

Name Type Description Default
value str | None

Optional fallback language code to validate.

required

Returns:

Type Description
str | None

str | None: Validated fallback language code, or None if no fallback language is specified.

Raises:

Type Description
ValueError

If fallback language code is invalid.

DetectionResult

Bases: BaseModel

Represents a complete language detection result.

Attributes:

Name Type Description
language Language

Primary detected language candidate.

alternatives list[Language]

Alternative detection candidates sorted by confidence descending.

is_fallback bool

Indicates whether the result comes from fallback logic.

validate_alternatives()

Validate alternative detections ordering, size, and confidence bounds.

Returns:

Name Type Description
DetectionResult 'DetectionResult'

Validated detection result.

EngineDetectionOutput

Bases: BaseModel

Raw detection output from a detection engine.

Attributes:

Name Type Description
primary Language

Highest-confidence language candidate.

alternatives list[Language]

Additional candidates sorted by confidence descending.

Language

Bases: BaseModel

Represents a single language detection candidate.

Attributes:

Name Type Description
language_code str

ISO 639-1 language code (e.g., "en").

confidence float

Detection confidence score between 0.0 and 1.0.