Tworzenie asynchronicznego endpointu do analizy sentymentu
Tworzysz platformę do analityki mediów społecznościowych, która musi analizować recenzje pod kątem sentymentu. Aby sprawnie obsługiwać duże natężenie ruchu, musisz zaimplementować asynchroniczny endpoint. Model do analizy sentymentu jest już załadowany i dostępny jako sentiment_model.
To ćwiczenie jest częścią kursu
Wdrażanie AI na produkcję z FastAPI
Instrukcje do ćwiczenia
- Utwórz asynchroniczny endpoint POST
/analyzeprzy użyciu aplikacji FastAPI. - Dodaj słowo kluczowe, które pozwoli wywoływać
sentiment_modelasynchronicznie, bez blokowania innych operacji. - Uruchom
sentiment_modelw osobnym wątku z tekstem recenzji, tak aby nie blokować pętli zdarzeń.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
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"]}