Implementera bakgrundsuppgifter
Ditt sentimentanalys-API tar emot förfrågningar om att bearbeta hundratals recensioner i ett enda batch. För att hantera detta effektivt utan att användarna behöver vänta, ska du implementera bearbetning av bakgrundsuppgifter så att förfrågningarna behandlas efter att ett svar har skickats till klienten.
Den här övningen är en del av kursen
Driftsättning av AI i produktion med FastAPI
Övningsinstruktioner
- Importera klassen för bakgrundsuppgifter från
fastapi. - Deklarera parametern
background_tasksför att hantera förfrågan som en uppgift som körs i bakgrunden. - Schemalägg bearbetningsuppgiften för att analysera recensionernas texter med hjälp av funktionen
process_reviews.
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
# 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"}