สร้าง async endpoint สำหรับวิเคราะห์ความรู้สึก
คุณกำลังสร้างแพลตฟอร์มวิเคราะห์โซเชียลมีเดียที่ต้องวิเคราะห์ความรู้สึกจากรีวิว เพื่อรองรับปริมาณการใช้งานสูงได้อย่างมีประสิทธิภาพ จึงต้องสร้าง endpoint แบบ async โดยโมเดลวิเคราะห์ความรู้สึกโหลดไว้แล้วและพร้อมใช้งานในชื่อ sentiment_model
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
การ Deploy AI สู่ Production ด้วย FastAPI
คำแนะนำการฝึกหัด
- สร้าง POST endpoint แบบ asynchronous ที่เส้นทาง
/analyzeโดยใช้ FastAPI app - เพิ่ม keyword สำหรับเรียกใช้
sentiment_modelแบบ asynchronous เพื่อไม่ให้บล็อกการทำงานอื่น - รัน
sentiment_modelในเธรดแยกต่างหากพร้อมส่งข้อความจากรีวิว เพื่อป้องกันไม่ให้บล็อก event loop
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
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"]}