API 요청
API 환경
MLflow
mlflow inference server에서는 아래와 같은 url을 제공합니다.
/invocations
: inference 경로입니다. 인풋 데이터를 POST 요청을 통해 전달하고 추론 결과를 반환합니다./ping
: health checks 위해 사용합니다./health
: /ping 동일합니다./version
: MLflow 버전을 반환합니다.
더 자세한 내용은 아래 페이지를 참고해주세요.
https://mlflow.org/docs/latest/deployment/deploy-model-locally.html#inference-server-specification
BentoML
- 사용자 지정 API: BentoML service 내 정의된 API 를 통해 추론을 진행하고 결과를 반환합니다.
/livez
: Kubernetes를 위한 헬스 체크 엔드포인트로, 정상적인 경우 200 OK 상태 코드로 응답합니다./readyz
:/readyz
엔드포인트에서 200 OK 상태가 반환되면 서비스가 트래픽을 수용할 준비가 되었음을 나타냅니다. 그 시점부터 Kubernetes는/livez
엔드포인트를 사용하여 주기 적인 상태 점검을 수행합니다./metrics
: Prometheus 메트릭 엔드포인트로,/metrics
의 반환 값을 통해 Prometheus 는 서비스의 메트릭을 수집하는 데 사용할 수 있습니다.
API 요청하기
요청을 할 때, API Key를 통해 요청해야 합니다. 그렇지 않은 경우 승인되지 않은 요청으로 해당 요청을 처리하지 않습니다.
API 정보에서 API URL을 확인할 수 있습니다. 이 곳에서 확인한 URL 뒤에 경로를 추가하여 사용할 수 있습니다.
MLflow API 요청하기
API URL 뒤에 경로를 추가하여 요청할 수 있습니다. 아래에서 몇가지 예시를 설명합니다.
/ping
요청을 하는 경우- API URL 뒤에
/ping
을 추가하여 요청합니다. https://api-cloud-function.elice.io/2ff51a26-9c2d-414c-86dc-56ae903291a5/ping
- API URL 뒤에
- 추론 요청을 하는 경우
- API URL 뒤에
/invocations
를 추가하여 요청합니다. https://api-cloud-function.elice.io/2ff51a26-9c2d-414c-86dc-56ae903291a5/invocations
- API URL 뒤에
만약 curl
명령을 통해 요청한다면 아래와 같은 형태가 될 것 입니다.
curl --location 'https://api-cloud-function.elice.io/{{api_id}}/invocations' \
--header 'Authorization: Bearer {{api_key}}' \
--header 'Content-Type: application/json' \
--data '{
"inputs": [ {{your_data}} ]
}'
MLflow에서 허용하는 데이터 형태에 대해 확인하려면 아래 문서를 참고해주시기 바랍니다. https://mlflow.org/docs/latest/deployment/deploy-model-locally.html#accepted-input-formats
BentoML API 요청하기
API URL 뒤에 경로를 추가하여 요청할 수 있습니다. 아래에서 몇가지 예시를 설명합니다.
/readyz
요청을 하는 경우- API URL 뒤에
/readyz
을 추가하여 요청합니다. https://api-cloud-function.elice.io/3ed3b4e7-46cb-459f-abd9-e30680e8b11f/readyz
- API URL 뒤에
- 추론 요청을 하는 경우
- 사용자 지정 API 엔드포인트 경로를 추가하여 요청합니다.
https://api-cloud-function.elice.io/3ed3b4e7-46cb-459f-abd9-e30680e8b11f/generate
만약 curl
명령을 통해 요청한다면 아래와 같은 형태가 될 것 입니다.
curl -X 'POST' \
'https://api-cloud-function.elice.io/3ed3b4e7-46cb-459f-abd9-e30680e8b11f/generate' \
-H 'accept: image/*' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer {{api_key}}' \
-d '{
"prompt": "a tiny astronaut hatching from an egg on the moon",
"height": 512,
"width": 512,
"num_inference_steps": 4,
"guidance_scale": 0
}'