서버 시작 시 AI 모델 로딩하기
사용자 댓글을 관리하는 감성 분석 모델을 배포해야 합니다. 서비스 중단 없이 API가 시작되자마자 사용자 댓글을 분석할 수 있어야 합니다.
이번 연습 문제에서는 FastAPI의 lifespan 이벤트를 활용해 모델을 효율적으로 로드하고, 댓글 관리 시스템을 구축해 보겠습니다. SentimentAnalyzer 모델 클래스는 이미 정의되어 가져온 상태입니다.
이 연습은 강의의 일부입니다
FastAPI로 AI 프로덕션 배포하기
연습 안내
contextlib모듈에서 lifespan 이벤트를 생성하는 데 필요한 컨텍스트 매니저 데코레이터를 가져오세요.- FastAPI의 컨텍스트 매니저 데코레이터를 사용해
lifespan이벤트 함수를 정의하고, 서버 시작 시 모델이 로드되도록 하세요. lifespan이벤트 안에서 모델을 로드하는 함수를 호출하세요.- 서버 로딩 프로세스가 계속 진행될 수 있도록
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
____
____