Module API (Inférence)¶
Module de l’API FastAPI pour l’inférence MLOps.
Ce module expose les routes REST permettant aux utilisateurs de soumettre des données pour prédiction. Il délègue le calcul lourd à un worker asynchrone via Celery et RabbitMQ.
- class src.api.main.Features(*args: Any, **kwargs: Any)[source]
Bases :
BaseModelReprésente les caractéristiques d’une fleur d’Iris.
- sepal_length
La longueur du sépale en cm.
- Type:
float
- sepal_width
La largeur du sépale en cm.
- Type:
float
- petal_length
La longueur du pétale en cm.
- Type:
float
- petal_width
La largeur du pétale en cm.
- Type:
float
- petal_length: float
- petal_width: float
- sepal_length: float
- sepal_width: float
- async src.api.main.create_prediction_task(features: Features) dict[str, Any]
Soumet une tâche de prédiction au broker de messages.
Au lieu de réaliser la prédiction de manière synchrone, cette route envoie les données au worker Celery et retourne immédiatement un identifiant de tâche (Task ID) au client.
- Paramètres:
features (Features) – Les mesures de la fleur envoyées par le client.
- Renvoie:
- Un dictionnaire contenant un message de confirmation et
le task_id permettant de suivre l’avancement.
- Type renvoyé:
dict[str, Any]
- Lève:
HTTPException – Si le broker (RabbitMQ/Redis) est injoignable (Erreur 503).
- async src.api.main.get_prediction_status(task_id: str) dict[str, Any]
Vérifie le statut d’une tâche de prédiction asynchrone.
Cette route est interrogée par le client (ex: Streamlit) pour savoir si le worker Celery a terminé son calcul.
- Paramètres:
task_id (str) – L’identifiant unique de la tâche retourné par /predict.
- Renvoie:
- L’état actuel de la tâche (en cours, terminé, ou erreur)
ainsi que la prédiction si elle est terminée.
- Type renvoyé:
dict[str, Any]
- async src.api.main.health_check() dict[str, str]
Sonde de vie pour le monitoring (Uptime Kuma/Kubernetes).
- Renvoie:
Le statut de santé de l’API.
- Type renvoyé:
dict[str, str]
- async src.api.main.root() dict[str, str]
Route d’accueil de l’API.
- Renvoie:
Un message de bienvenue simple.
- Type renvoyé:
dict[str, str]