Source code for klea_utils.errors
#!/usr/bin/env python3
"""
Custom errors.
File: utils_pkg/klea_utils/errors.py
Copyright 2026 Ankur Sinha
Author: Ankur Sinha <sanjay DOT ankur AT gmail DOT com>
"""
from enum import Enum
[docs]
class LLMInitializationError(Exception):
pass
[docs]
class PromptTemplateError(Exception):
pass
[docs]
class LLMInvocationErrorCategory(str, Enum):
"""Classification of LLM invocation failures.
Providers report errors inconsistently, so the classification is a
best-effort heuristic driven by tolerant regex matching (see
``klea_utils.llm.classify_llm_invocation_error``). The category
drives retry behaviour in the LLM nodes: some categories are retried
with adjusted parameters, others surface immediately.
"""
CONTEXT_OVERFLOW = "context_overflow"
LENGTH_TRUNCATION = "length_truncation"
RATE_LIMITED = "rate_limited"
AUTH_FAILED = "auth_failed"
MODEL_NOT_FOUND = "model_not_found"
TIMEOUT = "timeout"
STRUCTURED_OUTPUT_REJECTED = "structured_output_rejected"
UNKNOWN = "unknown"