Tạo endpoint phân tích cảm xúc async
Bạn đang xây dựng một nền tảng phân tích mạng xã hội cần phân tích cảm xúc của các review. Để xử lý lưu lượng cao hiệu quả, bạn cần triển khai một endpoint async. Model phân tích cảm xúc đã được nạp sẵn và có sẵn dưới tên sentiment_model.
Bài tập này là một phần của khóa học
Triển khai AI vào môi trường sản xuất với FastAPI
Hướng dẫn bài tập
- Tạo một endpoint POST bất đồng bộ
/analyzebằng FastAPI app. - Thêm từ khóa để gọi
sentiment_modelmột cách bất đồng bộ mà không chặn các tác vụ khác. - Chạy
sentiment_modeltrong một thread riêng với văn bản của review, đảm bảo không chặn event loop.
Bài tập tương tác thực hành trực tiếp
Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.
from fastapi import FastAPI
from pydantic import BaseModel
app = FastAPI()
class Review(BaseModel):
text: str
# Create async endpoint at /analyze route
@app.post("____")
# Write an asynchronous function to process review's text
____ def analyze_review(review: Review):
# Run the model in a separate thread to avoid any event loop blockage
result = ____ asyncio.____(sentiment_model, ____)
return {"sentiment": result[0]["label"]}