Zwracanie ustrukturyzowanych wyników z API
Tworzysz system moderacji treści, w którym musisz zdefiniować endpoint POST, aby przetestować wstępnie wytrenowany model analizy wydźwięku (sentymentu) na komentarzach użytkowników.
Należy stworzyć endpoint, który korzysta z modeli pydantic i zwraca predykcje w ustrukturyzowanym formacie.
Uwaga: Modele Pydantic – CommentRequest i CommentResponse – są już gotowe do użycia, podobnie jak wstępnie wytrenowany sentiment_model z predefiniowanej klasy SentimentAnalyzer.
To ćwiczenie jest częścią kursu
Wdrażanie AI na produkcję z FastAPI
Instrukcje do ćwiczenia
- Zaimplementuj endpoint
POSTpod ścieżką/analyze. - Zwaliduj
requestw funkcjianalyze_comment()zgodnie z modelemCommentRequest. - Wykonaj predykcję za pomocą
sentiment_model, przekazując poletextz obiekturequest. - Zwróć atrybuty predykcji (
textzrequest,"label"i"score"zresult[0]), aby sformatować odpowiedź wychodzącą zgodnie z modelemCommentResponse.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
# Create a POST request endpoint
@app.____("/analyze")
# Capture the request text for validation as per CommentRequest model
def analyze_comment(____: CommentRequest):
try:
# Specify pass the request text to the model
result = sentiment_model(____.____)
# Specify the result attributes to complete the comment response
return CommentResponse(text=____,
sentiment=____,
confidence=____)
except Exception:
raise HTTPException(status_code=500,
detail="Prediction failed"
)