Hintergrundaufgaben implementieren
Deine Sentiment-Analyse-API erhält Anfragen, bei denen Hunderte von Bewertungen auf einmal verarbeitet werden sollen. Damit das effizient läuft, ohne dass Nutzer warten müssen, implementierst du die Verarbeitung als Hintergrundaufgabe, sodass Anfragen weiter nach dem Senden der Antwort an den Client verarbeitet werden.
Diese Übung ist Teil des Kurses
KI in der Produktion mit FastAPI bereitstellen
Anleitung zur Übung
- Importiere die Klasse für Hintergrundaufgaben aus
fastapi. - Deklariere den Parameter
background_tasks, damit die Anfrage als Aufgabe im Hintergrund ausgeführt wird. - Plane die Verarbeitungsaufgabe zur Analyse der Bewertungstexte mit der Funktion
process_reviewsein.
Interaktive Übung
Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.
# 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"}