Implementación de tareas en segundo plano
Tu API de análisis de sentimientos está recibiendo solicitudes para procesar lotes de cientos de reseñas a la vez. Para gestionar esto de forma eficiente sin hacer esperar a los usuarios, implementarás el procesamiento de tareas en segundo plano, de modo 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 tarea en segundo plano desde
fastapi
. - Declara el parámetro
background_tasks
para gestionar la solicitud como una tarea que se ejecuta en segundo plano. - Programa la tarea de procesamiento de análisis de los textos de las reseñas mediante la función «
process_reviews
» (Procesar reseñas).
Ejercicio interactivo práctico
Prueba este ejercicio completando el código de muestra.
# 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"}