Mettre en place des tâches en arrière-plan
Votre API d’analyse de sentiment reçoit des demandes pour traiter des lots de centaines d’avis en une seule fois. Pour gérer cela efficacement sans faire attendre les utilisateurs, vous allez mettre en place un traitement en arrière-plan afin que les requêtes soient traitées après l’envoi de la réponse au client.
Cet exercice fait partie du cours
Déployer l’IA en production avec FastAPI
Instructions
- Importez la classe de tâches en arrière-plan depuis
fastapi. - Déclarez le paramètre
background_taskspour traiter la requête comme une tâche exécutée en arrière-plan. - Planifiez la tâche de traitement qui analyse le texte des avis à l’aide de la fonction
process_reviews.
Exercice interactif pratique
Essayez cet exercice en complétant cet exemple de code.
# Import the background task class
from fastapi import ____
# Create a background task dependency
@app.post("/analyze_batch")
async def analyze_batch(
reviews: Reviews,
background_tasks: ____
):
async def process_reviews(texts: List[str]):
for text in texts:
result = await asyncio.to_thread(sentiment_model, text)
print(f"Processed: {result[0]['label']}")
# Add the task of analysing reviews' texts to the background
background_tasks.____(process_reviews, reviews.texts)
return {"message": "Processing started"}