НачатьНачать бесплатно

Реализация фоновых задач

Ваш API анализа тональности начинает получать запросы на пакетную обработку сотен отзывов одновременно. Чтобы справляться с этим эффективно и не заставлять пользователей ждать, вы реализуете обработку фоновых задач: запросы будут обрабатываться уже после отправки ответа клиенту.

Это упражнение является частью курса

Развёртывание ИИ в производственной среде с помощью FastAPI

Посмотреть курс

Инструкции к упражнению

  • Импортируйте класс фоновых задач из fastapi.
  • Объявите параметр background_tasks, чтобы обрабатывать запрос как задачу, выполняемую в фоновом режиме.
  • Запланируйте задачу анализа текстов отзывов с помощью функции process_reviews.

Интерактивное практическое упражнение

Попробуйте выполнить это упражнение, дополнив этот пример кода.

# 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"}
Редактировать и запускать код