본문 바로가기

챱챱

🛠 [BentoML] FormData을 BentoML input으로 받기

🛠 [BentoML] Form-data을 BentoML input으로 받기

BentoML에서 API를 사용할 수 있는데, input과 output을 지정해줘야함 -> input과 output은 BentoML API IO Descriptor를 따라야합니다.
https://docs.bentoml.org/en/latest/reference/api_io_descriptors.html

 

API IO Descriptors

IO Descriptors are used for describing the input and output spec of a Service API. Here’s a list of built-in IO Descriptors and APIs for extending custom IO Descriptor. NumPy ndarray: Tabular Data ...

docs.bentoml.org


FormData의 경우, 여러가지의 타입이 들어가서 따로 Multipart로 구성해줘야합니다.
# Form-data의 내용과 동일하게 만들기
input_spec = Multipart(type=Text(), file=File(), fileName=Text(), fileExtension=Text(), lang=Text(), model=Text(), fileType=Text(), subtitleStatus=Text())

@svc.api(input=input_spec, output=JSON())
def stt(type, file, fileName, fileExtension, lang, model, fileType, subtitleStatus):
    print("input_data ", type)

✏ Multipart를 사용해서 FormData의 인자들을 미리 정의해줘서 사용하면 됩니다.
  정의하는 인자들은 BentoML input type을 따르게 됩니다.
  FormData에서 받아온 인자들은 def에서는 저렇게 각각 인자를 적어서 사용해야합니다.