CommencerCommencez 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’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

<cours>Déployer l’IA en production avec FastAPI</cours>
Voir le cours

Instructions de l’exercice

  • Importez la classe de tâches en arrière-plan depuis fastapi.
  • Déclarez le paramètre background_tasks pour 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 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