Achtergrondtaken implementeren
Je sentimentanalyse-API krijgt verzoeken om in één keer honderden reviews te verwerken. Om dit efficiënt af te handelen zonder gebruikers te laten wachten, ga je achtergrondverwerking implementeren zodat verzoeken worden verwerkt nadat je een reactie naar de client hebt gestuurd.
Deze oefening maakt deel uit van de cursus
AI in productie brengen met FastAPI
Oefeninstructies
- Importeer de achtergrondtaakklasse uit
fastapi. - Declareer de parameter
background_tasksom het verzoek als een taak op de achtergrond uit te voeren. - Plan de verwerkingstaak voor het analyseren van de reviewteksten in met de functie
process_reviews.
Interactieve oefening met praktijkervaring
Probeer deze oefening door deze voorbeeldcode aan te vullen.
# 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"}