ComeçarComece de graça

Implementando tarefas em segundo plano

Sua API de análise de sentimento está recebendo solicitações para processar lotes com centenas de avaliações de uma vez. Para lidar com isso de forma eficiente, sem fazer o usuário esperar, você vai implementar o processamento em segundo plano, para que as solicitações sejam processadas após o envio da resposta ao cliente.

Este exercício faz parte do curso

Colocando IA em Produção com FastAPI

Ver curso

Instruções do exercício

  • Importe a classe de tarefas em segundo plano de fastapi.
  • Declare o parâmetro background_tasks para tratar a solicitação como uma tarefa executada em segundo plano.
  • Agende a tarefa de processamento da análise dos textos das avaliações usando a função process_reviews.

Exercício interativo prático

Experimente este exercício completando este código de exemplo.

# 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"}
Editar e executar o código