Implementar tareas en segundo plano
Tu API de análisis de sentimiento está recibiendo solicitudes para procesar lotes de cientos de reseñas a la vez. Para gestionarlo de forma eficiente sin hacer que los usuarios esperen, vas a implementar el procesamiento de tareas en segundo plano para que las solicitudes se procesen después de enviar una respuesta al cliente.
Este ejercicio forma parte del curso
Implementación de IA en producción con FastAPI
Instrucciones del ejercicio
- Importa la clase de tareas en segundo plano desde
fastapi. - Declara el parámetro
background_taskspara gestionar la solicitud como una tarea que se ejecute en segundo plano. - Programa la tarea de procesamiento que analiza los textos de las reseñas usando la función
process_reviews.
ejercicio interactivo práctico
Prueba este ejercicio completando este código de ejemplo.
# 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"}