Implementarea sarcinilor de fundal
API-ul tău de analiză a sentimentelor primește solicitări de procesare a unor loturi de sute de recenzii deodată. Pentru a gestiona acest lucru eficient, fără să-i faci pe utilizatori să aștepte, vei implementa procesarea sarcinilor de fundal, astfel încât cererile să fie procesate după ce răspunsul a fost trimis clientului.
Acest exercițiu face parte din cursul
Deployment AI în producție cu FastAPI
Instrucțiuni pentru exercițiu
- Importă clasa pentru sarcini de fundal din
fastapi. - Declară parametrul
background_taskspentru a gestiona cererea ca sarcină rulată în fundal. - Programează sarcina de procesare a textelor din recenzii folosind funcția
process_reviews.
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
# 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"}