CommencerCommencer 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

Déployer l’IA en production avec FastAPI

Afficher le cours

Instructions

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