CommencezCommencez gratuitement

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'évaluations 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 demandes soient traitées après l'envoi d'une réponse au client.

Cette activité fait partie du cours

Déployer l'IA en production avec FastAPI

Voir le cours

Instructions de l’exercice

  • Importez la classe de tâche en arrière-plan depuis fastapi.
  • Déclarez le paramètre background_tasks pour gérer 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 évaluations à l'aide de la fonction process_reviews.

Exercice interactif pratique

Essayez cet exercice en complétant ce code d’exemple.

# 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"}
Modifier et exécuter le code