Files

2.1 KiB

Module: ai_availability_status

Purpose

Thread-safe status tracker for the AI engine lifecycle (downloading, converting, uploading, enabled, warning, error).

Public Interface

Enum: AIAvailabilityEnum

Value Name Meaning
0 NONE Initial state, not yet initialized
10 DOWNLOADING Model download in progress
20 CONVERTING ONNX-to-TensorRT conversion in progress
30 UPLOADING Converted model upload in progress
200 ENABLED Engine ready for inference
300 WARNING Operational with warnings
500 ERROR Failed, not operational

Class: AIAvailabilityStatus

Field Type Description
status AIAvailabilityEnum Current status
error_message str or None Error/warning details
Method Signature Description
__init__ () Sets status=NONE, error_message=None
__str__ () -> str Thread-safe formatted string: "StatusText ErrorText"
serialize () -> bytes Thread-safe msgpack serialization {s: status, m: error_message} (legacy — not called in current codebase)
set_status (AIAvailabilityEnum status, str error_message=None) -> void Thread-safe status update; logs via constants_inf (error or info)

Internal Logic

All public methods acquire a threading.Lock before reading/writing status fields. set_status logs the transition: errors go to constants_inf.logerror, normal transitions go to constants_inf.log.

Dependencies

  • External: msgpack, threading
  • Internal: constants_inf (logging)

Consumers

  • inference — creates instance, calls set_status during engine lifecycle, exposes ai_availability_status for health checks
  • main — reads ai_availability_status via inference for /health endpoint

Data Models

  • AIAvailabilityEnum — status enum
  • AIAvailabilityStatus — stateful status holder

Configuration

None.

External Integrations

None.

Security

Thread-safe via Lock — safe for concurrent access from FastAPI async + ThreadPoolExecutor.

Tests

None found.