FastAPI 2

[FastAPI] Mounting으로 FastAPI 기본 경로 설정하기

1. Mount "Mounting"은 특정 경로에 독립적인 application을 추가하는 것을 의미한다. 2. Example Code from fastapi import FastAPI app = FastAPI() subapi = FastAPI() @subapi.get("/sub") def read_sub(): return {"message": "Hello World from sub API"} app.mount("/subapi", subapi) subapi라는 FastAPI 새로운 인스턴스를 생성한 후, .mount() 메서드를 통해 해당 인스턴스를 app 인스턴스에 mount해줄 수 있다. mount()는 두 개의 parameter를 받는데, 첫 번째 parameter는 해당 api의 경로, 두 번째 ..

[FASTAPI] FastAPI server가 시작될 때 인공지능 모델 load하기

1. LifeSpan Events LifeSpan Event란? application이 시작하기(request를 받기) 전, 혹은 실행되고 나서 한 번 실행되는 코드로, 다음과 같은 효용을 지닌다. 전체 application이 공유하는 자원을 초기에 세팅할 수 있다. (ex. 인공지능 모델 load) application이 실행된 이후, 불필요한 resource를 제거할 수 있다. 인공지능 모델을 load할 때에는 것은 많은 양의 데이터를 디스크로부터 읽어야 하기 때문에 많은 시간이 걸린다. 따라서 request가 발생할 때마다 모델을 load하는 것은 장원의 낭비이며, 이는 FasiAPI app의 lifespan parameter에 콜백함수를 정의해주는 것으로 해결할 수 있다. 2. lifespan 공..