Реализация фоновых задач
Ваш 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"}