Mise en œuvre des tâches en arrière-plan
Votre API d'analyse des sentiments reçoit des demandes pour traiter des centaines d'avis à la fois. Pour gérer cela efficacement sans faire attendre les utilisateurs, vous allez mettre en place un traitement des tâches en arrière-plan afin que les requêtes soient traitées après l'envoi d'une réponse au client.
Cet exercice fait partie du cours
Déployer l'IA en production avec FastAPI
Instructions
- Veuillez importer la classe de tâche en arrière-plan à partir de
fastapi
. - Déclarez le paramètre d'
background_tasks
pour traiter la requête comme une tâche s'exécutant en arrière-plan. - Planifiez la tâche de traitement consistant à analyser les textes 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"}