Maak een async endpoint voor sentimentanalyse
Je bouwt een platform voor socialmedia-analytics dat reviews op sentiment moet analyseren. Om veel verkeer efficiënt af te handelen, moet je een async endpoint implementeren. Het sentimentanalysemodel is al geladen en beschikbaar als sentiment_model.
Deze oefening maakt deel uit van de cursus
AI in productie brengen met FastAPI
Oefeninstructies
- Maak een asynchroon POST-endpoint
/analyzemet de FastAPI-app. - Voeg het trefwoord toe om
sentiment_modelasynchroon aan te roepen zonder andere operaties te blokkeren. - Laat
sentiment_modelin een aparte thread draaien met de tekst van de review, zodat de event loop niet wordt geblokkeerd.
Interactieve oefening met praktijkervaring
Probeer deze oefening door deze voorbeeldcode aan te vullen.
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"]}