โหลดโมเดล AI ตอนเริ่มต้นเซิร์ฟเวอร์
ในแบบฝึกหัดนี้ คุณจะต้องนำโมเดลวิเคราะห์ความรู้สึก (sentiment analysis) ที่ฝึกไว้แล้วไปใช้งาน เพื่อช่วยกลั่นกรองความคิดเห็นของผู้ใช้ โดยต้องการให้ API พร้อมทำงานทันทีที่เริ่มต้น เพื่อไม่ให้เกิดช่วงหยุดทำงาน (zero downtime)
ในแบบฝึกหัดนี้ จะได้ใช้ lifespan events ของ FastAPI เพื่อโหลดโมเดลอย่างมีประสิทธิภาพ สำหรับสร้างระบบกลั่นกรองความคิดเห็น คลาสโมเดล SentimentAnalyzer ถูกกำหนดและนำเข้ามาให้แล้ว
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
การ Deploy AI สู่ Production ด้วย FastAPI
คำแนะนำการฝึกหัด
- นำเข้า context manager decorator จากโมดูล
contextlibเพื่อสร้าง lifespan event - ใช้ context manager decorator ของ FastAPI เพื่อกำหนดฟังก์ชัน
lifespanevent ให้โมเดลโหลดตอนเริ่มต้นเซิร์ฟเวอร์ - เรียกฟังก์ชันโหลดโมเดลใน
lifespanevent เพื่อให้โมเดลพร้อมใช้งานตั้งแต่เริ่มต้น - เรียก
yieldเพื่อให้กระบวนการโหลดเซิร์ฟเวอร์ดำเนินต่อไปได้
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# Import the context manager decorator from contextlib module
from contextlib import ____
sentiment_model = None
def load_model():
global sentiment_model
sentiment_model = SentmentAnalyzer("sentiment_model.joblib")
# Use FastAPI's context manager to define lifespan event
@____
def lifespan(app: FastAPI):
# Call the function to load the model
____
____